db migration toolどうやって選ぶ?
db migration toolは世の中にたくさんあるので使いたいものを使えばいいと思うが、自分が選ぶとしたらこんな基準があるかなというやつ。
migration toolって何ができたら嬉しいか
検討ポイント | 理由 | 優先度 |
---|---|---|
checksumを確認している | DBが壊れるのは絶対に避けたい。おかしいデータを入れさせない。 | high |
生のSQLで記述する | (好み)使っているtoolがもし更新されなくなった時に変えが効くように。学習コストもDSL記述より低い。 | high |
コマンドライン実行できる | アプリに統合した形(railsなど)だと、そのwebアプリを捨てることが一生できなくなってしまうのでできれば避けたい。 | high |
金額 | 無料の方が嬉しい(当たり前)。flywayとかはライセンス料が意外と高い。 | middle |
dryrunができる | 気軽にロールバックできるようにすればいいのでそこまで問題ではない。 | low |
rollbackができる | rollbackをmigration toolに任せてしまうと意図から外れた変更が起こりかねないので慎重にやるためにも手運用で十分。 | low |
なので自分はflyway(free)をコマンドラインで使うのが好き。
勿論寿命が短いアプリとか、それぞれ適材適所あると思うのでその時にあった物を使うのが一番大事。
こういうdb migration toolいいよとかあったら教えてください。