次のプロジェクトでRuby on Railsを使用することを検討しています。レールのウェブサイトの展開を理解するのは簡単です(Phusion Passengerのように聞こえます)Gerritを使ったRuby on Railsデータベースの展開
しかし、今私はデータベースを把握しようとしています。私はルビーコードを使用してデータベースを更新することができます "データベースの移行"について多くを参照してください。 upとdownこれらの移行の亜種を作成することが許可されていることもわかります。
しかし、私はこれがどのようにして単一の方向にきちんと動作するかを見極めることができます。突然私が「カラー列はヌルにすることはできません」と言うと想像してください。したがって、を入力してを入力すると、すべてのNULLエントリにデフォルト値が設定されます。しかし、はになるのでしょうか?それが始まった方法と同じであれば、デフォルト値をNULLに戻すことはできません。
これは、リリースの生産にはあまり関係ありません。それは単方向(up方向)で行われる可能性があります。 しかし、コードレビューにGerritを使用し、チェックインを許可する前にビルドを実行するボットを設定したいと思っています。
どのように機能するのですか?あるコードレビューから次のコードレビューまで、ビルドサーバーは新しいコードセットをチェックアウトし、移行を実行しますか?しかし、これが起こると、以前から移行コードを保持していないので、ステップをどのようにしてステップ実行できますか?もっと簡単な例として、コードの古いバージョンをチェックアウトして "db migrate"を逆戻りする方法がわかりません。
受け入れられる回答。ビルドで何らかの方法で移行をテストする必要があるので、私が使用する正確な戦略についてはまだ分かりません。ビルドの前にリストアされたDBスナップショットを作成し、マイグレーションを実行してみましょう。 –