Question

Je voulais réinitialiser une base de données et une base de données émis baisse suivie d'une base de données créer sur un serveur postgresql accessible via psycopg2 par une application django.

Quand je ne syncdb ./manage.py je reçois l'erreur suivante:

(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

et dans le journal postgresql je suis l'erreur suivante:

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

Comment puis-je résoudre ce problème s'il vous plaît?

Était-ce utile?

La solution

La cause de c'était un problème dans django-demande qui est utilisée par Django-Mingus. Au cours de syncdb Django fait une introspection db et une importation liée a soulevé cette exception. Si vous devez tirer les derniers bits à partir de django-demande ou django-Mingus vous serez ok.

Autres conseils

Essayez de vous remettre la base de données comme ./manage.py your_app reset

Je faisais la même question et dépisté jusqu'à la validation, à 2979ea3d4541f7b3c51c17e160bc95b468ac999b sur django-Mingus

Si vous réinitialisées à commettre 2f7eb8de7e2cb1c776e801a40f008048fcbb6d36, la synchronisation doit se produire bien.

mySQL ne remet pas en cause la transaction en cours lorsqu'il rencontre une erreur où postgres génère l'erreur et ne fonctionnent pas autre requête jusqu'à ce que la transaction en cours ne soit pas interrompue. Dans ce cas, vous devez tuer la transaction ou de commettre avec cet identifiant de transaction

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top