python - Django,添加多个数据库错误配置了我的设置

标签 python django

我有一个完全可用的测试项目,它只使用一个数据库(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/

相关文章:

python - 使用数据透视表 pandas 进行排序

python - 使用表单字段构建查询字符串

python - Django 中相同表单的两个不同提交按钮

python - 在多处理过程中抑制输出

java - cmake 后没有在 build/bin 目录中创建 opencv jar 文件

Django ListView : taking a time difference in all items

python - 使用 Django 登录 Twitter 的最佳方式

python - 带有标题和描述标签的 SEO 和 Django

Python 3 非阻塞同步行为

python - 加速 Matplotlib