Table des matières

Migrations

Installation du plugin (CakePHP 3.7.2)

Le plugin Migrations est déjà installé (et activé dans la classe src/Application.php), si ce n'est pas le cas, faire ce qui suit :

Depuis le dossier du projet, en tant qu'utilisateur non-root :

php composer.phar require cakephp/migrations "@stable"

Cela doit mettre à jour la classe src/Application.php : ajout de la ligne $this→addPlugin('Migrations');

Écrire une migration soi-même

Exemple, pour créer une nouvelle table pantalons, nommer la migration config/Migrations/yyyymmddhhmmss_CreatePantalons.php :

<?php
use Migrations\AbstractMigration;
 
class CreatePantalons extends AbstractMigration {
 
    public function change() {
        $table = $this->table('pantalons');
        $table
            ->addColumn('couleur', 'string', [
                        'default' => 'noir',
                        'limit' => '255',
                        'null' => 'false'])
            ->addColumn('taille', 'integer', [
                        'default' => 0,
                        'null' => 'false'])
            ->create();
    }
}

Générer une migration par la console

En ligne de commande, depuis le dossier du projet.

sudo bin/cake bake migration CreateArticles nom:string quantite:integer prix:float

Cela crée un fichier .php dans le dossier /config/Migrations.

Afficher le statut des migrations

On peut à tout moment voir le status des différentes migrations, si elles ont été appliquées ou pas.

Se placer à la racine du projet.

Sous Linux :

sudo bin/cake migrations status

Sous Windows :

bin\cake migrations status

Appliquer la(les) migration(s) créée(s)

Une fois qu'une ou plusieurs migrations ont été créées, on les applique dans la base de données en tapant cette commande :

sudo bin/cake migrations migrate