Django はデータベースを削除/作成した後に syncdb を実行できません

StackOverflow https://stackoverflow.com/questions/2125326

  •  22-09-2019
  •  | 
  •  

質問

データベースをリセットし、ドロップデータベースを発行した後、DjangoアプリによってPSYCOPG2を介してアクセスされるPostgreSQLサーバー上の作成データベースが作成されました。

./manage.py syncdb を実行すると、次のエラーが発生します。

(prod)root@ns204612:/home/someproject/prod/django-mingus/mingus# ./manage.py syncdb
Traceback (most recent call last):
  File "./manage.py", line 16, in <module>
    execute_manager(settings)
  File "/home/someproject/prod/lib/python2.6/site-packages/django/core/management/__init__.py", line 362, in execute_manager
    utility.execute()
  File "/home/someproject/prod/lib/python2.6/site-packages/django/core/management/__init__.py", line 303, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/someproject/prod/lib/python2.6/site-packages/django/core/management/base.py", line 195, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/home/someproject/prod/lib/python2.6/site-packages/django/core/management/base.py", line 222, in execute
    output = self.handle(*args, **options)
  File "/home/someproject/prod/lib/python2.6/site-packages/django/core/management/base.py", line 351, in handle
    return self.handle_noargs(**options)
  File "/home/someproject/prod/lib/python2.6/site-packages/django/core/management/commands/syncdb.py", line 52, in handle_noargs
    tables = connection.introspection.table_names()
  File "/home/someproject/prod/lib/python2.6/site-packages/django/db/backends/__init__.py", line 491, in table_names
    return self.get_table_list(cursor)
  File "/home/someproject/prod/lib/python2.6/site-packages/django/db/backends/postgresql/introspection.py", line 30, in get_table_list
    AND pg_catalog.pg_table_is_visible(c.oid)""")
  File "/home/someproject/prod/lib/python2.6/site-packages/django/db/backends/util.py", line 19, in execute
    return self.cursor.execute(sql, params)
psycopg2.InternalError: current transaction is aborted, commands ignored until end of transaction block

postgresql ログに次のエラーが記録されました。

2010-01-24 01:08:02 CET ERROR:  relation "django_site" does not exist
2010-01-24 01:08:02 CET STATEMENT:  SELECT "django_site"."id", "django_site"."domain", "django_site"."name" FROM "django_site" WHERE "django_site"."id" = 1  ORDER BY "django_site"."domain" ASC
2010-01-24 01:08:02 CET ERROR:  current transaction is aborted, commands ignored until end of transaction block
2010-01-24 01:08:02 CET STATEMENT:  
                    SELECT c.relname
                    FROM pg_catalog.pg_class c
                    LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
                    WHERE c.relkind IN ('r', 'v', '')
                        AND n.nspname NOT IN ('pg_catalog', 'pg_toast')
                        AND pg_catalog.pg_table_is_visible(c.oid)
2010-01-24 01:08:02 CET LOG:  could not receive data from client: Connection reset by peer
2010-01-24 01:08:02 CET LOG:  unexpected EOF on client connection

どうすればそれを修正できますか?

役に立ちましたか?

解決

この原因は、ジャンゴ・ミンガスで使用されているジャンゴ・リクエストで問題でした。 syncdbの実行中、Djangoはいくつかのデシベルのイントロスペクションを行い、関連の輸入は、この例外が発生しました。あなたはどちらかのジャンゴ - 要求またはジャンゴ・ミンガスから最新のビットを引っ張っている場合は大丈夫でしょう。

他のヒント

あなた./manage.pyリセットyour_app

のようなデータベースをリセットしてみてください

私は、同じ問題を持つとジャンゴ・ミンガス

に2979ea3d4541f7b3c51c17e160bc95b468ac999bにコミットすることを突き止めました。

あなたは2f7eb8de7e2cb1c776e801a40f008048fcbb6d36をコミットするために戻ってリセットした場合、同期が罰金を起こるはずます。

それはPostgresはエラーをスローし、現在のトランザクションが中止されていないまで、他のクエリを実行しないエラーが発生した場合、

MySQLは現在のトランザクションを無効にしません。この場合、あなたが取引を殺すために持っているか、そのトランザクションIDにコミット

ここを見てください http://www.faqs.org/docs/ppbook/x15040.htm

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top