読者です 読者をやめる 読者になる 読者になる
一人もくもく会 α verでサービス開始しました。

cakephp/migrationsにプルリクエストを送った

CakePHP php program Advent Calendar

はじめに

CakePHP3 Advent Calendar 2016 - Qiita

20日目が空いていたので。

内容

CakePHP3のマイグレーションにはmigration_diffという機能があり、 差分から自動的にマイグレーションファイルを作ってくれる超便利な機能がある。

ただ1点、 afterオプションだけ自動的につけてくれない、 という仕様だったのがずっと気になっていた。

気になってソースを調べてみると、 なんとなく可能なんじゃないか、という感じに見えた。 でも付けられていないということは何か理由でもあるのだろうか?

と思いつつ対応してみたら簡単にafterをつけることができた。 せっかくなのでテストも作成し、issueでPRしていいか聞いてみたところOKが出たのでPR。 Milestoneにも入ったので問題なければ恐らくマージされるのではないかと思う。

Add 'after' attribute to migration_diff by dala00 · Pull Request #281 · cakephp/migrations · GitHub

ちなみにafterが無いのは特に理由はなくまだだれも対応していなかっただけだった。

テスト方法

migration_diffのテストは、実行後git statusしてみるとだいたい分かるが、 マイグレーションファイルが作成され、それを想定される出力結果ファイルと比較する、というもの。 MySQLやPostgresでファイルが分かれているのでそれぞれテストして出力結果ファイルを修正する。

そのあたりをきちっとやったら後は環境依存のエラーやよくわからないものが出るので、 forkしたリポジトリTravis CIでチェックして本家と同じ感じになればOKだと思われる。 PRした時も同様のチェックが自動的に行われる。

まとめ

せっかくのオープンソースなので気になったり不足を感じる点があったら是非PRしてみた方が良い。 あとはマージされることを祈るばかり。

ちなみに仕事場ではもう勝手に修正をあてている。 もしマージされなかったら永久に自分で修正し続けるしかない。

追記)マージされました。