をドロップして再作成することができません。私は、Mac OS Xジャンゴテスト - 私は<code>/manage.py test --settings=myproj.settings.local</code></p> <p>を実行すると、テスト用データベース
にDjangoの1.9、Postgresの9.5.1を実行していますが、私は得る:
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.
だから、This postあたりとして、私が実行します。
SELECT
pg_terminate_backend(pid)
FROM
pg_stat_activity
WHERE
pid <> pg_backend_pid()
AND datname = 'test_myproj'
;
に進みますエラーを取得するためだけにテストを再試行してください。DETAIL: There is 1 other session using the database.
プロセスリストでは、データベースに何も付いていません。私はサーバーを停止して再起動しますが、テストを実行する管理コマンドでは、データベースに別のセッションが接続されているというエラーが表示されます。
これは本物の頭のスクラッチャーです。これまでにこれまで見たことはありませんでした。他に誰かがいますか?
マイセッティング:
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',
}
}
私は解決策はありませんが、テストの場合の両方のデータベースは 'test_myproj'という名前になります - デフォルトでは動作し、userlocationではこのデータベースは既存のものとして検出されます。既存のセッションは、テストを実行している現在のdjangoがまだ使用しているセッションです。スクリプトが終了した後はもうセッションがありません;) – dahrens
[docs](https://docs.djangoproject.com/en/1.10/topics/testing/advanced/#controlling-creation-order-for -test-databases) – dahrens
@ダーレンズ、ありがとう。設定ファイルを少し修正し、魅力的に動作します。 – fiacre