2015-06-21 47 views
0

我使用sqlite數據庫和應用python manage.py dumpdata後,我在settings.py的Django 1.8錯誤:沒有數據庫燈具指定

DATABASES = { 
'default': { 
    'ENGINE': 'django.db.backends.postgresql_psycopg2', 
    'NAME': 'music',      
    'USER': '**', 
    'PASSWORD': '****', 
    'HOST': '127.0.0.1', 
    'PORT': '5432', 
    } 
    } 

添加了新的postgresql數據庫設置但是當我嘗試將數據加載到新postgresql數據庫我收到以下錯誤

C:\Users\Saket\musicalguru>python manage.py loaddata 
usage: manage.py loaddata [-h] [--version] [-v {0,1,2,3}] 
         [--settings SETTINGS] [--pythonpath PYTHONPATH] 
         [--traceback] [--no-color] [--database DATABASE] 
         [--app APP_LABEL] [--ignorenonexistent] 
         fixture [fixture ...] 
manage.py loaddata: error: No database fixture specified. Please provide the path of at least one fixture in the command line. 

無法理解錯誤是什麼。我在我的sqlite數據庫中已經有數據,因此我還需要postgresql數據庫中的新數據。

回答

4

你能告訴我你是如何做數據轉儲的嗎?如果你看一下dumpdata docs,你會看到它:

Outputs to standard output all data in the database associated with the named application(s).

和:

By default, dumpdata will format its output in JSON

現在,如果你看看你的錯誤,你會看到你缺少一個數據庫夾具。該loaddata docs告訴什麼夾具是何Django會尋找燈具:

A fixture is a collection of files that contain the serialized contents of the database. Each fixture has a unique name, and the files that comprise the fixture can be distributed over multiple directories, in multiple applications.

Django will search in three locations for fixtures:

  1. In the fixtures directory of every installed application
  2. In any directory named in the FIXTURE_DIRS setting
  3. In the literal path named by the fixture

所以,可以使用您轉儲你的數據文件:

./manage.py dumpdata ... > mydata.json 
./manage.py loaddata mydata.json 
+0

好運行'manage.py dumpdata> mydata.json'創建一個只包含可用的django子命令列表的文件。裏面沒有數據。並且運行'manage.py loaddata mydata.json'只是在命令行上返回相同的列表。之前運行的'python manage.py dumpdata'至少返回了數據庫中所有數據的混亂列表。可能是什麼問題? – WutWut

+0

奇怪的是,唯一一次我看到'manage.py'的子命令列表是如果我運行它而不是一個子命令,或者如果我運行它'/ help'。完全按照「工作時」的方式運行,但在後面加入'> mydata.json'。 –

1

你需要告訴loaddata要加載的文件,如果它不是在應用fixtures目錄:

python manage.py loaddata file/path/of/dumbdata.json 

要麼你將你的甩數據fixtures目錄應用程序或手動指定的文件,因爲我上述。閱讀移動約loaddata命令here