Django can';删除/创建数据库后的同步数据库

Django can';删除/创建数据库后的同步数据库,django,postgresql,syncdb,Django,Postgresql,Syncdb,我想重置一个数据库,并发出了一个drop database命令,后跟一个create database命令 在postgresql服务器上,django应用程序通过psycopg2访问 当我执行./manage.py syncdb时,我得到以下错误: (prod)root@ns204612:/home/someproject/prod/django-mingus/mingus# ./manage.py syncdb Traceback (most recent call last): Fil

我想重置一个数据库,并发出了一个drop database命令,后跟一个create database命令 在postgresql服务器上,django应用程序通过psycopg2访问

当我执行./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
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

我怎样才能解决这个问题呢?

试着像./manage.py重置你的应用程序那样重置你的数据库

我遇到了同样的问题,并在django mingus上的2979ea3d4541f7b3c51c17e160bc95b468ac99b处跟踪到提交


如果重置回提交2f7eb8de7e2cb1c776e801a40f008048fcbb6d36,同步应该会正常进行。

原因是django Mingus使用的django请求中存在问题。在syncdb期间,Django进行了一些db自省,相关的导入引发了此异常。如果您要从django request或django mingus中提取最新的位,您就可以了。

mySQL在遇到错误时不会使当前事务失效,其中postgres会抛出错误,并且在当前事务未中止之前不会运行其他查询。在这种情况下,您必须终止该事务或使用该事务id提交该事务,请看这里,它是远程服务器还是本地服务器?您是否尝试重新启动PostgreSQL server?它是一台本地服务器,我尝试重新启动PostgreSQL server,但没有结果。我遇到了类似的问题-这是由于尝试在我的应用程序中智能使用init.py造成的。在那里,我导入了我的表单和测试(以便runserver和django autotest能够获取它们)。通过将它们包装在一个if块中,该块检查了argv中我想要的服务器命令,它得到了修复。感谢您确认此问题。嗨,Praveen,您是否有一些关于Postgresql中事务的指针?如何查找打开的事务、提交或回滚它们?