2016-01-07 38 views
1

我有一個完全正常的測試項目,它只使用一個數據庫(Django 1.8 + PostgreSQL 9.1)。然後,我被要求添加多個數據庫。我丟棄了我正在使用的一個數據庫,並創建了3個新數據庫。我修改settings.py這樣的:Django,添加多個數據庫miscofigured我的設置

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'NAME': 'core', 
     'USER': 'chris', 
     'PASSWORD': '***', 
     'HOST': 'localhost', 
     'PORT': '5432', 
    }, 
    'db1': { 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'NAME': 'db1', 
     'USER': 'chris', 
     'PASSWORD': '***', 
     'HOST': 'localhost', 
     'PORT': '5432', 
     }, 
    'db2': { 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', 
     'NAME': 'db2', 
     'USER': 'chris', 
     'PASSWORD': '***', 
     'HOST': 'localhost', 
     'PORT': '5432', 
    } 
} 
DEFAULT_INDEX_TABLESPACE = 'default' 

(使用數據庫自​​動路由,只有一個models.py)

當我試圖讓我的第一個遷移現在我得到這樣的:

django-admin.py makemigrations --database=db1

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

但後來我這樣做:

(testproject) [email protected] ~/D/w/testproject> python manage.py shell 
>>> from django.conf import settings 
>>> settings.DEFAULT_INDEX_TABLESPACE 
'default' 
>>> settings.configure() 
RuntimeError: Settings already configured. 

我在做什麼錯?

+0

什麼*究竟*你運行創建遷移? –

+0

謝謝,我剛剛更新了我的問題。 – xpanta

回答

3

您應該使用manage.py內的項目,而不是django-admin.py

python manage.py makemigrations 

你不需要數據庫名稱傳遞給makemigrations。但是你需要在遷移時分別遷移每個數據庫。

python manage.py migrate --database=db1