Closed7
ブランチの切り替えに伴うマイグレーション状態の修正
Railsプロジェクトの開発で、ローカルのブランチを切り替える時に、DBのマイグレーション状態も修正する必要がある場合がある。どうしたら開発体験をよくできるか。
既存のアプローチを調べる
手動切替
checkoutする前に db:rollback
または db:migrate:down
をする。
=> うっかり忘れてしまう事がある。
スクリプトで切替
手動で行うコマンドをまとめてスクリプトで実行する
DBを切り替えるパターン
その他
マイグレーションファイルをgitの管理外の領域に保存しておいてrollbackできるようにするという発想
スクリプトがシンプルで良さそう。これをgit hookで実行できるようにしたらどうだろう。
Git hookを調べる
実行タイミングとして checkout成功後( post-checkout
)はあるけど、checkout実行前はないので、ロールバックさせるタイミングがない。
git checkout
にaliasを当てて、スクリプトを実行した後本当の git checkout
を実行すという方法も考えられるけど、1つのプロジェクトに対して適用したいのにシェル全体でaliasを当ててしまうことになるのがいまいち。
スクリプトの手動実行忘れ防止に post-checkout
でなにかできるだろうか。
マイグレーション状態に変更があるかどうか判断するのは難しそう(commitせずstashにする場合もあるだろうし)なので、毎回警告メッセージを出すくらいか。
そもそもstashしちゃってたらスクリプト使ってもロールバックできないという問題もある。
このスクラップは2022/06/16にクローズされました