CodeLab技術ブログ

プログラミング技術まとめ

[CakePHP3]Seedファイルで初期データを作る

Seedってなに

Seedファイルは、データベースの初期データ投入するための仕組みです。

スポンサードリンク

Seedコマンド

既存のテーブルのデータからSEEDを作成

下記コマンドで、指定したテーブルのデータをもとにSEEDファイルが作られます。
dataにはテーブル名(モデル名?)を指定します。

$ bin/cake bake seed --data Users

テーブル名がCakeの仕様と合ってない場合は–tableでテーブル名を別途指定できるようでした。

$ bin/cake bake seed --data Users --table hogehoge_users

ファイルはデフォルトでは
config/Seeds/ の下に
モデル名Seed.php という名称で作成されます。

SEEDからデータ投入

下記のコマンドでデータを投入できます。

# まとめて実行
$ bin/cake migrations seed
# 特定のSEEDファイル入れる場合(下記はUsersSeed.phpを実行)
$ bin/cake migrations seed --seed UsersSeed

ただ単にインサートしているだけなので、idがかぶるとDuplicateエラーとかになったりします。
また、外部キー参照とかは考慮してくれてないので、全部いっぺんにやる方式だとエラーになる場合があります。
外部キーを考慮して個別にコマンドを実行するか、エラーにならない順番で中身をコピペして一つのSeedファイルにまとめる必要があります。

スポンサードリンク
スポンサードリンク

コメントは受け付けていません。