3

新しいモデルを追加してステージング サーバーにプッシュし、syncdb を実行してテーブルを作成すると、ロックされます。「テーブルphotos_photousertagの作成」まで取得し、postgresの出力には「photos_photousertag_id_seq」の作成に関する通知が表示されますが、それ以外の場合はどちらにも何も表示されません。syncdb プロセスを ctrl+c できず、ここからどのルートを取るべきかわかりません。他の誰かがこれに遭遇しましたか?

4

3 に答える 3

1

私もこれを経験したばかりで、Djangoとは関係のない、その特定のテーブルの単純な古いロックであることが判明しました。それがクリアされると、同期はうまくいきました。

同期が停止しているテーブルに対してクエリを実行してみて、最初にそれが正しく機能していることを確認してください。

于 2012-05-03T20:35:57.660 に答える
1

Postgres を使用しており、この特定の問題には遭遇していませんが、デバッグに役立つ手順がいくつかあります。

を。どのバージョンの postgres と psycopg2 を使用していますか? さらに言えば、djangoのどのバージョンですか?

b. 「--verbosity=2」オプションを指定して syncdb コマンドを実行し、すべての出力を表示してみてください。

c. 「manage.py sql」コマンドを実行して、django が生成している SQL を見つけます。postgres シェルで新しいモデルの CREATE TABLE ステートメントを実行し、何が発生するかを確認します。

d. postgres のエラー ロギング、ステートメント ロギング、およびサーバー ステータス ロギングを有効にして、特定のメッセージをキャッチできるかどうかを確認します。

以前は、オプション b またはオプション c のいずれかが問題を指摘することがよくありました。

于 2009-03-23T16:30:12.210 に答える
0

ここでも奇妙ですが、PostgreSQL サービス (ま​​たはサーバー) を再起動するだけで解決しました。テーブル作成コードを psql にも手動で貼り付けようとしましたが、それでも解決しませんでした (まあ、それがロックの場合は解決できませんでした)。そのため、再起動を使用しました。

systemctl restart postgresql.service

それは私の Suse ボックスにあります。

サービス/サーバーをリロードすると、既存のテーブル ロックも解除されるかどうかわかりませんか?

于 2014-01-21T09:53:51.577 に答える