2011-01-26 12 views
18

でDjangoのテストデータベースの名前を指定します。私はPythonのオブジェクトを使用してデータベースを指定していsettings.py

DATABASES = { 
'default':{ 
    'ENGINE':'mysql', 
    'NAME':'testsqldb', 
    'USER':'<username>', 
    'PASSWORD':'<password>', 
}, 
'dynamic_data':{ 
    'ENGINE': 'sqlite3', 
    'NAME':'', 
    'USER':'', 
    'PASSWORD':'' 
}, 
} 

どのように私は私のテストデータベースの名前を指定することができますか?私はTEST_NAME = 'auto_tests'をsettings.pyファイルに使用しようとしています。私はおそらく「auto_tests_testsqldb」と呼ばれる、私のテストを実行しているときに別のデータベースを作成するために、システムを期待してい

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: 

;:私はpython manage.py tests <app_name>を実行したときしかし、私は次のメッセージが表示されますしかし、まだtest_testsqldbについて私に尋ねています。

アドバイスありがとうございます。

答えて

26

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を上書きすることができます。

+1

+1ありがとうございます、TEST_NAMEのキーは私が探していたものです!テストのドキュメントで設定情報を調べるとは思わなかった。 –

+0

Django 1.10では、これは現在 "TEST"です:{"NAME": "auto_tests"}、 '(https://docs.djangoproject.com/en/dev/ref/settings/#testを参照) – kd88

関連する問題