CakePHP3(Phinx)のMigration記述例

  • 30
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

CakePHP3はDBスキーマの更新管理にPhinxを採用していますが、ドキュメントが少ない…。
ということで、Migrationファイルの例を書こうと思います。

一応参考:
Cookbook 3.x - Migrations
Phinx - Writing Migrations

テーブルの追加

change()に書ける

$table = $this->table('table_name');
$table->addColumn('name', 'string')
      ->addColumn('description', 'text')
      ->addColumn('created', 'datetime')
      ->addColumn('modified', 'datetime')
      ->create();

テーブル名の変更

change()に書ける

$table = $this->table('old_table_name');
$table->rename('new_table_name');

テーブルの削除

change()に書けない

$this->dropTable('table_name');

カラムの追加

change()に書ける

$table = $this->table('table_name');
$table->addColumn('col_name', 'integer', [
    'default' => 0,
    'limit' => 4,
    'null' => false,
    'after' => 'prev_col_name',
]);
$table->update();

カラム名の変更

change()に書ける

$table = $this->table('table_name');
$table->renameColumn('old_col_name', 'new_col_name');

カラム定義の変更

change()に書けない

$table = $this->table('table_name');
$table->changeColumn('col_name', 'integer', [
    'default' => null,
    'null' => true,
]);

カラムの削除

change()に書けない

$table = $this->table('table_name');
$table->removeColumn('col_name');