0

すでに本番環境にある Rails アプリに大きな変更を加えた後、すべてをサーバーにプッシュし、マイグレーションを実行したところ、重大な問題が発見されました。

移行によって本番データベースに作成されていないデータベース列が 2 つあることがわかりました。移行を見てみると、それらの列を作成するものはありません。ある時点で git でエラーを起こし、それらのファイルを失ったと思います。

私が知りたいのは、本番データベースでこれらの列を安全に作成する方法です。これらの 2 つの列を作成し、本番環境にプッシュして移行を実行するための新しい移行を作成するだけで、うまくいくと思いますが、列が既に存在する開発データベースでこれらの移行を実行すると、問題が発生しますか?

4

2 に答える 2

2

これを試してください列が存在するかどうかを確認してください

新しい移行を作成し、列が存在するかどうかのチェックを追加し、存在しない場合は、add_column(....)を使用して列を作成します。

これにより、開発が中断されることはなく、同じgitリポジトリを使用する他のコードも、操作にコメントを付けたり、完了時にコメントを解除したりするのではなく、メリットがあります。

于 2012-08-13T11:53:39.643 に答える
1

はい、これは開発中のデータベースで問題を引き起こします。開発中のデータベースで rake db:migrate を実行中に add_column コマンドをコメントし、その操作の後でコメントを外してください。

于 2012-08-13T11:29:48.747 に答える