-
Notifications
You must be signed in to change notification settings - Fork 16
Migrations
Thomas Recouvreux edited this page Sep 17, 2013
·
6 revisions
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
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
$ 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
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`;");
}
// ...