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');