Outils pour utilisateurs

Outils du site


cakephp3:migrations

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.

  • Le nom de la commande est Create suivi du nom de la table
    • Pour créer une table Articles, utiliser la commande CreateArticles
    • Le nom de la table doit être au pluriel
  • Lister tous les noms de champ avec leur type à la suite.
    • Exemple : <nom_du_champ>:<type_du_champ>
  • S'il l'on veut un index sur ce champ, ajouter :index à la fin
    • Exemple : id_produit:integer:index
  • Le champ id est créé automatiquement, pas besoin de le spécifier
  • Pour les champs created et modified, pas besoin de spécifier le type, car ce sont des champs standards de CakePHP donc il sait déjà comment les créer.
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
cakephp3/migrations.txt · Dernière modification: 2019/06/29 19:39 par marclebrun