1

そのため、数か月前、何らかの理由で奇妙な git メッセージを受け取り、デプロイを恐れていました。そのため、本番アプリケーションに直接変更を加え始め、ローカル コードにも同じ変更を手動で加えようとしました。

すべてを更新する時が来たので、ローカルコードを本番コードと同期させ、git と capistrano を使用して再度デプロイしたいと思いました。そのため、運用サーバーからコードをダウンロードし、いくつかのファイルをローカル コードにコピーして貼り付け、運用サーバーで何かを上書きしないようにしました。

実行できるようにcap:deployなり、すべてが期待どおりに機能しているようです。問題は、開発コピーに新しい列を作成し、実行cap deploy:migrateしようとしましたが、本番データベースが一掃されるのではないかと心配していることです。

実行したところ、実稼働データベースとスキーマ移行テーブルが既にチェックされてrake db:migrate:statusいるというメッセージが表示されます。Schema migrations table does not exists yet.そのため、アプリは現在の移行バージョンを認識していないようで、cap deploy:migrate実行するとすべての移行が実行され、データベースが消去されるのではないかと心配しています。

このメッセージが表示されるのはなぜですか? 私は何をすべきか?

4

2 に答える 2

4

私の状況はあなたとは多少異なるかもしれませんが、私も同じメッセージを受け取りました。Rails 4 を使用してローカル PC で開発を行っていました。

db:migrateのみを使用してみてください。

于 2015-11-30T05:37:25.353 に答える
0

私が見つけた解決策は、abort_if_pending_migrations を使用することです。

export RAILS_ENV=production; bundle exec rake db:abort_if_pending_migrations

移行が最新の場合は何も表示されず、そうでない場合は更新が必要なテーブルが一覧表示されます。これはRails 4.1.8です。

于 2018-12-20T22:58:07.840 に答える