【CakePHP3】Migrationで特定のカラムに対し、UNIQUE制約を設定する方法

Bake-with-CakePHP Logo

CakePHP3でDBのテーブルを作成したりカラム追加ができるMigration。インデックスを付与する人も多いと思うが、今回はその中でもUNIQUE制約(つまりUNIQUE INDEX)を追加/削除する方法ついてメモを残しておく。検証したCakePHPのバージョンは3.6.13。DBはMySQL5.7.26。

UNIQUE制約はaddIndex(), removeIndex()で追加/削除が可能

実際にbakeで生成したMigrationファイルを見てもらったほうが手っ取り早い。

こんな感じ。

addIndex(), removeIndex()の第1引数は対象カラムを指し、第2引数の中でインデックス名を指定できる。addIndex()の第2引数にはさらに、どんなインデックスを貼るのかを配列の中で指定可能。

ちなみに第2引数でnameの指定を無くすと、インデックス名は自動的にカラム名と同じ名前が付けられる。