DBICを使うとMyApp::Schema::Result以下にテーブルの定義を書く。
package MyApp::Schema::Result::Hoge; ...; __PACKAGE__->table('hoge'); __PACKAGE__->add_columns( id => { data_type => 'BIGINT', is_nullable => 0, is_auto_increment => 1, extra => { unsigned => 1, }, } ); ...;
略しまくってるけど、こんなの。
で、スキーマの更新を行うたびここを修正してから、毎度決まったスクリプトを叩き、SQLを作成して、データベースのmigrateだとかをやる。
作成されたSQLでmigrate用のALTERの作成等をするので、SQLが古いままだとずっとスキーマが更新されない。
前からやってる人は、Result以下の変更を監視して、自動で更新とかするようにしている(と思う)
だけど、新しく入った人は、それを知らないとかが当然あって困る。
なので、スキーマの更新があるのにSQLの更新がされていない場合、テストをfailさせるようにして、スクリプトを実行する必要があることを教える事にした。
という話です。
あるスクリプトが実行されるべきなのに実行されていなかったらテストをfailさせて、ほげほげを実行しよう!!みたいなの表示するっていうのやってる。 / “ドキュメントの場所を知らせるために、落ちるテストを作る - $shibayu3…” http://t.co/ZzOakmXKvb
— ひさいち (@hisaichi5518) April 13, 2014