CakePHP 4 で Migrations や Seeds を別フォルダに置いて実行

今日は CakePHP 4 の bin/cake migrations コマンドで、別フォルダに設置したマイグレーションやシードを実行する方法をご紹介します。

動作確認に使用したのは CakePHP 4.2.3 (cakephp/migrations 3.0.0) で、ファイル構成は以下のような感じです。

/path/to/cakephp4/
    ├ config/
    │  ├ MyMigrations/
    │  │  └ 20210126000001_CreateDrinks.php
    │  │
    │  ├ MySeeds/
    │  │  └ DrinksSeed.php
    │  │
    ~  ~

マイグレーションでもシードでも、source オプションを使うことでフォルダを指定することができます。

$ bin/cake migrations migrate --source MyMigrations

$ bin/cake migrations seed --source MySeeds

省略形の -s も使用可能です。

$ bin/cake migrations migrate -s MyMigrations

$ bin/cake migrations seed -s MySeeds

執筆時点では上記ドキュメントは開発途中とされていて、一部仕様と異なる説明があるかもしれません。