Django Test — Unable to drop and recreate test database
我在Mac OS X上运行Django 1.9,Postgres 9.5.1
当我运行
我明白了:
1 2 3 4 5 6 7 8 | Creating test database for alias 'default'... Creating test database for alias 'userlocation'... Got an error creating the test database: database"test_myproj" already exists Type 'yes' if you would like to try deleting the test database 'test_myproj', or 'no' to cancel: yes Destroying old test database for alias 'userlocation'... Got an error recreating the test database: database"test_myproj" is being accessed by other users DETAIL: There is 1 other session using the database. |
所以,根据这篇文章,我运行:
1 2 3 4 5 6 7 8 9 10 | SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE pid <> pg_backend_pid() AND datname = 'test_myproj' ; |
继续
作为进程列表,数据库中没有附加任何内容。 我终止服务器并重新启动,但运行测试的管理命令仍然给我一个错误,即有另一个会话连接到数据库。
这是一个真正令人头疼的问题,我以前从未见过这个 - 还有其他人吗?
我的设置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'myproj', 'USER': 'myuser', 'PASSWORD': 'mypass', 'HOST': 'localhost', 'PORT': '', }, 'userlocation': { 'ENGINE': 'django.contrib.gis.db.backends.postgis', 'NAME': 'og_myproj', 'USER': 'og_myuser', 'PASSWORD': 'mypasswd', 'HOST': 'localhost', 'PORT': '5432', } } |
详细信息:使用数据库还有1个其他会话。
当测试数据库在pg admin ui中打开并尝试同时运行django测试时,已经看到此消息。 在删除db django / psycopg2之前,检查该数据库上是否有活动的会话。 在pg admin中关闭与服务器的连接,它就可以了。 检查您是否在shell或ui中连接到db。 不需要重启服务器。