Rails で開発していてブランチを切り替えたときに毎回マイグレーションが実行されてしまい
すでに存在している create_table や add_column がエラーになるので
マイグレーションディレクトリを消して対処してるんですが
これを回避するにはどうするのがいいのでしょうか
マイグレーションは数百にのぼるのですべての
add_column, create_table の前に存在チェックしてスキップコードをいれるのは大変で
add_column, create_table を存在する場合にスキップするようにオーバーライドしたモジュールかクラスを作って
class xxx < MyMigration
とか
class xxx < ActiveRecord::Migration include CheckedMigration
と1行ずつはさんでいくならなんとか手作業でもできるかなという感じなんですが
この2つだとどちらのほうがいいでしょうか
あるいはもっと簡単に行うことはできますか?
「ブランチを切り替えたときに毎回マイグレーションが実行されてしま」うこと自体遭遇したことがないのですが、マイグレーションやschema.rbもきちんとGit管理していますか?
(バグって重複登録されたので片方を削除)
schema を commit に含めてしまうと今度は他の人がマイグレーションをするべきなのにされなくなってしまうので schema は毎回リセットされます 複数人で開発している場合 Rails の develop の状況と個々人がローカルでもってる MySQL の状態がどうしても違ってしまうので…
そういう状況であれば、マイグレーションでなくridgepole(https://github.com/winebarrel/ridgepole)などで管理するほうがいいかもしれません。
回答1件
あなたの回答
tips
プレビュー