我有一个完全可用的测试项目,它只使用一个数据库(Django 1.8 + PostgreSQL 9.1)。然后,我被要求添加多个数据库。我删除了我正在使用的一个数据库并创建了 3 个新数据库。我像这样修改了 settings.py:
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:请求设置 DEFAULT_INDEX_TABLESPACE,但未配置设置。在访问设置之前,您必须定义环境变量 DJANGO_SETTINGS_MODULE 或调用 settings.configure()。
然后我这样做:
(testproject) chris@ubuntu-pc ~/D/w/testproject> python manage.py shell
>>> from django.conf import settings
>>> settings.DEFAULT_INDEX_TABLESPACE
'default'
>>> settings.configure()
RuntimeError: Settings already configured.
我做错了什么?
最佳答案
您应该在项目中使用 manage.py
而不是 django-admin.py
:
python manage.py makemigrations
您不需要将数据库名称传递给 makemigrations
。但是你确实需要在迁移的时候分别迁移每个数据库。
python manage.py migrate --database=db1
关于python - Django,添加多个数据库错误配置了我的设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34661856/