Frage

Ich wollte eine Datenbank zurückzustellen und eine Drop-Datenbank durch eine Datenbank erstellen, gefolgt ausgegeben auf einem PostgreSQL-Server durch psycopg2 durch ein django App abgerufen.

Wenn ich ./manage.py syncdb ich die folgende Fehlermeldung erhalten:

(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

und im postgresql log ich folgende Fehlermeldung bekommen:

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

Wie kann ich das beheben, dass Sie?

War es hilfreich?

Lösung

Die Ursache hierfür war ein Problem in django-Anfrage, die von Django-Mingus verwendet wird. Während syncdb tut Django einige db Selbstbeobachtung und ein damit verbundener Import erhöhte diese Ausnahme. Wenn Sie die neuesten Bits von beiden django-Anfrage oder django-mingus ziehen sind werden Sie in Ordnung sein.

Andere Tipps

Versuchen Sie Datenbank wie ./manage.py Reset your_app zurücksetzen

Ich habe das gleiche Problem und verfolgen es das Festschreiben nach unten auf 2979ea3d4541f7b3c51c17e160bc95b468ac999b auf django-mingus

Wenn Sie 2f7eb8de7e2cb1c776e801a40f008048fcbb6d36 zu begehen zurückgesetzt, sollte die Synchronisierung in Ordnung geschehen.

mySQL nicht die aktuelle Transaktion ungültig, wenn ein Fehler auftritt, wo Postgres den Fehler wirft und läuft nicht andere Abfrage, bis die aktuelle Transaktion nicht abgebrochen. In diesem Fall, dass Sie die Transaktion zu töten oder zu begehen mit dieser Transaktions-ID

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top