2016-03-25 9 views
0

実稼働環境を展開(移行を含む)しようとしました。しかし、私のDjangoの移行(列の追加など)は非常に頻繁に停止し、それ以上進行しません。djangoの移行が進行せず、データベースのロックが行われます

私はpostgresql 9.3で作業しています。この問題の原因がいくつか見つかります。 postgresqlにアクティブなトランザクションがある場合、alter tableクエリは機能しません。これまでは、移行前にpostgresqlサービスを再起動することが解決策でしたが、これは悪い考えです。

うまく展開することをお勧めしますか?

答えて

0

接続が開いていると、スキーマの更新が中止される可能性があります。既存の接続が完了するのを待つことができない場合、または長時間実行される接続が使用されるような環境では、更新プログラムの実行中にすべての接続を停止する必要があります。

オンライン状態を維持できる読み取り専用のスレーブがあれば、ダウンタイムが大幅に短縮される可能性があります。そうでない場合は、サイトが何らかのエラー/説明ページ/リダイレクトにフェールオーバーすることが、少なくとも、移行のためのダウンタイムが許容される場合に来るリクエストに対する生のエラーコード応答を避けるでしょう。

+0

あなたの答えをありがとう。私のサービスはかなり簡単です。単純な選択クエリがいくつかあります。だから私は接続があるかどうかは非常に長い時間がかかるかどうかはわかりません。 (1分以上のように、頻繁に起こることさえあります)さらに、データベースのロックを完全にするために待機するのはどうしたら起こるのでしょうか? – qodot