lilweb/evolution-bundle

This package is abandoned and no longer maintained. The author suggests using the doctrine/migrations package instead.

Easy bundle for database evolution

Installs: 613

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 3

Forks: 0

Open Issues: 4

Type:symfony-bundle

0.1.1 2013-11-21 09:17 UTC

This package is not auto-updated.

Last update: 2022-02-01 12:24:12 UTC


README

1. Configuration du composer.json

Dans le composer.json, rajouter ces lignes (à adapter si besoin est):

"require": {
    "Lilweb/evolution-bundle": "0.*"
}

Il est aussi possible de le faire en ligne de commande:

$> composer require Lilweb/evolution-bundle

2. Activer le bundle

Dans app/AppKernel.php:

<?php
    public function registerBundles()
    {
        $bundles = array(
            // ...
            new Lilweb\EvolutionBundle\LilwebEvolutionBundle(),
        );

        // ...
    }

3. Configurer le bundle

Vous pouvez surcharger le répertoire où les évolutions sont stockées:

# app/config/config.yml
lilweb_evolution:
    evolution_dir: /full/path/to/directory

NB: Par défaut, celui-ci équivaut à %kernel.root_dir/evolutions.

4. Utilisation

Le fonctionnement du bundle se veut très simple: appliquer une suite d'évolutions à une base de données.

A partir de la dernière évolution effectuée, le bundle va chercher les nouvelles évolutions à appliquer tout en étant capable de rollback en cas de problème.

Pour écrire une évolution, il vous suffit de définir vos:

  • "Ups": Le ou les évolutions à appliquer
  • "Downs": Les 'contre-évolutions' (eg: qu'est-ce que je fais si mon évolution a échouée)

Exemple:

-- Migration du 12/10/2004

# Script #1

-- Script number one

# /!\ Respecter la syntaxe de la ligne suivante:
# --- !Ups

CREATE TABLE IF NOT EXISTS `toto` (
  `id` int(11) NOT NULL, -- comment
  `name` varchar(10) DEFAULT NULL, # comment
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `titi` (
  `id` int(11) NOT NULL,
  `name` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

# /!\ Respecter la syntaxe de la ligne suivante:
# --- !Downs

DROP TABLE toto;
DROP TABLE titi;

NB: Le nom du fichier doit respecter le format [\d]+.sql (eg: 1.sql, 15.sql ...) NB2: En cas de problèmes, un rollback s'effectura à partir de la version buggué, jusque la version d'avant évolution.