capistranoを使用して本番稼動中に問題が発生しました。私たちは、大量のデータベース移行を含む大規模なリファクタリングを終了しました。カピストラの移行中に接続が中断されました
デプロイ中に、キャップが移行中に実行されていた最悪の事態が起こり、ssh接続が切断されました。
私はロードバランサを介してsshingに問題があると思うが、それはポイントの横にある。
私は、サーバー上で画面を実行し、ここで移行し、後で展開することで移行を完全に実行することができました。
アプリが今すぐアップしているようですが、接続が中断された場合のcapistranoの移行処理方法を知っていますか?
接続が切断されたときに実行された移行が完了していることを確認できますか?
半分の実行または移行が2回実行される可能性はありますか?
エラーが発生した場合にロールバックするdbトランザクションで各移行をラップすると仮定しますが、これが該当しますか?
移行が完了するまでは実行してもよろしいですか?私がログオンして手動で移行を実行したとき、移行が開始された後で移行が開始されました。 実行された移行がもう一度実行されないことを理解しています。そのため、安全な再実行db:migrateを感じましたが、接続が低下した特定の移行についての自信がありません。 – Dalaigh88
あなたが正しいです、そして、接続が落ちたときに停止しますが、私が "それが停止されていれば..."という意味は基本的に、実行されていない移行のためにスキーマが変更されないため、 'db:migrate'を実行すると、そこから最初に実行された"実行されていない "移行が実行されます。私は、データベース自体(レール、ルビー、レーキを除く)は、レコード自身(ACID)とスキーマ/テーブルのどちらにも「非永続」変更があるフォールトを保護していると仮定します。 –