2011-01-26 15 views
18

में Django टेस्ट डाटाबेस नाम मैं एक अजगर वस्तु का उपयोग कर डेटाबेस को निर्दिष्ट कर रहा हूँ निर्दिष्ट करें? मैं सेटिंग्स.py फ़ाइल में TEST_NAME = 'auto_tests' का उपयोग करने का प्रयास कर रहा हूं। हालांकि, जब मैं चलाने python manage.py tests <app_name> मैं निम्न संदेश मिलता है:settings.py

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 के बारे में मुझसे पूछ रहा है।

कोई सलाह की सराहना की जाती है!

उत्तर

26

Django 1.6 और नीचे, TEST_NAME आपके डेटाबेस शब्दकोशों में से एक की कुंजी होना चाहिए। लेकिन 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 में यह अब "परीक्षण" है: {"NAME": "auto_tests"}, '(https://docs.djangoproject.com/en/dev/ref/settings/#test देखें) – kd88