今回の開発(趣味開発)で、Railsのマイグレーションバージョンを手動で管理するようにしました。
こんな感じ。
開発初期って、結構**「あー。このカラムも必要だなー…」**ってなるので。マイグレーションファイルを作った後に。
その度にいちいちrails g migration add_column ...とするのは結構面倒・・・と言うよりも**「マイグレーションファイルが大量に作られるのがうざい(そして後々見た時、量が多すぎて訳が分からない…)」**。
あと新たにDB作ったりリセットする時にすごーく時間がかかる(schema.rbに頼らずマイグレーションを行う場合)。
マイグレーションファイルの先頭番号は整数で6桁としたのですが、連番ではなく、飛び飛びで番号を書いています。
なんでかって言うと、途中にマイグレーションを**「あっ。」**って差し込んだりするからですね。「あっ」て。
通常のマイグレーション生成では完全に時系列なので起こりえないのですが、後からマイグレーションを遡って治したりするので、こういう事が起こるわけです(しかも結構がっつり外部キー追加しちゃったりする)。
そしてどうも、Rails4からなのか(昔は出来なかった気がする…)途中に差し込まれたマイグレーションがあっても、rake db:migrateで流してくれる(昔=3系の時は、一番最後のバージョンしか見てくれてなかった…気がする、記憶違い…?)。
ので、rake db:migrate:up VERSION=xxxとかイチイチ指定しなくていい。素敵!!
使ってる感じでは、悪く無いです。
マイグレーションとかも自由に遡ったり出来るし、後から見た時にもわかりやすいし綺麗。
昔のマイグレーション直した時も、何回かロールバックすればいい話だと思います(STEP=xとかで)。でも大体古いの程修正は入りにくい(仕様として固まってる)ので、そんなに大量にロールバックする事はないですね。
リリースしちゃうとこういう管理は出来ませんが、リリースするまで、及びリリースとリリースの間ではこういう運用をやってみるのも、アリだと思います。
追記: リリースする毎に一番上位の桁数上げるとかやってみようかなー。そういうのも面白いかも。
今後の運用に乞うご期待!
