Skip to content
Thomas Recouvreux edited this page Sep 17, 2013 · 6 revisions

Installation de la base

Créer la base manuellement et insérer les paramètres correspondants dans le fichier config.inc.php.

Créer la structure :

$ php db.php migrations:migrate

Insérer les données :

$ php db.php dbal:import dev_data.sql

Migration vers la dernière version

Il est possible de vérifier s'il y a des changements à appliquer :

$ php db.php migrations:status

 == Configuration

    >> Name:                                               payutc Migrations
    >> Database Driver:                                    pdo_mysql
    >> Database Name:                                      payutc
    >> Configuration Source:                               /Users/arthur/Assos/payutc/code/server/migrations.xml
    >> Version Table Name:                                 doctrine_migration_versions
    >> Migrations Namespace:                               Payutc\Migrations
    >> Migrations Directory:                               /Users/arthur/Assos/payutc/code/server/src/Payutc/Migrations
    >> Current Version:                                    2013-07-07 18:20:25 (20130707182025)
    >> Latest Version:                                     2013-07-07 18:20:25 (20130707182025)
    >> Executed Migrations:                                1
    >> Executed Unavailable Migrations:                    0
    >> Available Migrations:                               2
    >> New Migrations:                                     1       <----- il y a une mise à jour

Pour lancer la migration vers la dernière version :

$ php db.php migrations:migrate

Up & Down

$ php db.php migration:status | grep 'Current Version'
>> Current Version:                                    2013-09-16 23:55:39 (20130916235539)
# down
$ php db.php migration:execute --down 20130916235539
# up
$ php db.php migration:execute --up 20130916235539

Création d'une migration

Générer un template de migration :

$ php db.php migrations:generate

Le fichier est ajouté dans src/Payutc/Migrations. La méthode up() doit modifier la structure de la base. La méthode down() doit remettre la structure à l'état de la migration précédente (c'est obligatoire !).

Exemple :

<?php
// ...
    public function up(Schema $schema)
    {
        $this->addSql("CREATE TABLE IF NOT EXISTS `pouet` (
          `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
          `name` varchar(30) NOT NULL,
          PRIMARY KEY (`id`),
        ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;");
    }

    public function down(Schema $schema)
    {
        $this->addSql("DROP TABLE `pouet`;");
    }
// ...

Doc

http://doctrine-orm.readthedocs.org/projects/doctrine-migrations/en/latest/reference/introduction.html