pythonオブジェクトを使用してデータベースを指定しています:
DATABASES = {
'default':{
'ENGINE':'mysql',
'NAME':'testsqldb',
'USER':'<username>',
'PASSWORD':'<password>',
},
'dynamic_data':{
'ENGINE': 'sqlite3',
'NAME':'',
'USER':'',
'PASSWORD':''
},
}
テストデータベースの名前を指定するにはどうすればよいですか? settings.pyファイルでTEST_NAME = 'auto_tests'
を使用しようとしています。ただし、python manage.py tests <app_name>
を実行すると、次のメッセージが表示されます。
Creating test database 'default'...
Got an error creating the test database: (1007, "Can't create database 'test_testsqldb'; database exists")
Type 'yes' if you would like to try deleting the test database 'test_testsqldb', or 'no' to cancel:
テストの実行時に、おそらく「auto_tests_testsqldb」と呼ばれる別のデータベースがシステムによって作成されることを期待しています。ただし、それでもtest_testsqldbについて質問されます。
どんなアドバイスも大歓迎です!
Django 1.6以下では、TEST_NAME
は、データベース辞書の1つのキーである必要があります。ただし、Django 1.7以降では、テストデータベースの設定の辞書であるTEST
キーを使用します。
あなたはおそらく欲しいです:
DATABASES = {
'default':{
'ENGINE':'mysql',
'NAME':'testsqldb',
'USER':'<username>',
'PASSWORD':'<password>',
'TEST': {
'NAME': 'auto_tests',
}
},
'dynamic_data':{
'ENGINE': 'sqlite3',
'NAME':'',
'USER':'',
'PASSWORD':''
},
}
あるいは、テストに別のエンジンを使用したい場合がありますか?その場合は、テスト用に別の設定ファイルを作成するだけでよいと思います。標準設定モジュールからインポートして、DATABASES
をオーバーライドできます。