もがき系プログラマの日常

もがき系エンジニアの勉強したこと、日常のこと、気になっている技術、備忘録などを紹介するブログです。

cakephp3でfixtureデータを現状のDB情報で作成する

簡単ですが、なんとか週2postを達成するためにしょうもないネタを。

cakephp3でテストを作成する際にfixtureデータを作成するんですが、作るのが結構めんどくさい。

bakeコマンドでベースのファイルは作成できるけど、実際のデータは作らないといけない。

現状のデータをfixtureデータとして使えないかとみていると、オプションで使えることがわかった。

以下がコマンド

$ bin/cake bake fixture -r -n 30 -f -s テーブル名

これで指定したテーブルから、30件分の実データを引っ張ってきてfixtureデータとしてファイルを作成してくれる。

たとえばデータが死ぬほど多い場合は、以下のようにSQLでfixtureデータとして扱いたいデータを指定できる。

$ bin/cake bake fixture -r -n 30 -f  --conditions="created >= '2018-01-01 00:00:00'" -s テーブル名

一からプロジェクトを作る場合は問題ないけど、cakephp3への移植を行う場合は、一からテストデータ作るよりも、現状のデータを使ってテストを書くほうが早いと思った。

とりあえず少ないけどノルマ達成・・・w