Django - 添加第二个数据库条目会导致失败。 Django不再使用'默认'

问题描述 投票:0回答:1

使用此数据库设置,我的数据库和项目运行良好:

DATABASES = {
    'default': {
        'ENGINE': 'django.contrib.gis.db.backends.postgis',
        'NAME': 'myprojectdb',
        'USER': 'myprojectuser',
        'PASSWORD': 'my_secret_password',
        'HOST': 'localhost',
        'PORT': '5432',
        'ATOMIC_REQUESTS': True
    },
}

但我想为我的readonly db用户添加一个'readonly'数据库条目,就像这样,以便我可以运行django-sql-explorer

DATABASES = {
    'default': {
        'ENGINE': 'django.contrib.gis.db.backends.postgis',
        'NAME': 'myprojectdb',
        'USER': 'myprojectuser',
        'PASSWORD': 'my_secret_password',
        'HOST': 'localhost',
        'PORT': '5432',
        'ATOMIC_REQUESTS': True
    },
    'readonly': {
        'ENGINE': 'django.contrib.gis.db.backends.postgis',
        'NAME': 'myprojectdb',
        'USER': 'myprojectreadonly',
        'PASSWORD': 'your_eyes_only_secret',
        'HOST': 'localhost',
        'PORT': '5432',
        'ATOMIC_REQUESTS': True
    }
}

而现在django抛出了几个不同的错误。如果我尝试对迁移做任何事情,我会得到:

django.db.utils.ProgrammingError: permission denied for relation django_migrations

如果我尝试运行服务器,我得到:

"AUTH_USER_MODEL refers to model '%s' that has not been installed" % settings.AUTH_USER_MODEL
django.core.exceptions.ImproperlyConfigured: AUTH_USER_MODEL refers to model 'users.User' that has not been installed

看起来当我添加第二个数据库设置时,django正试图将其用于迁移,运行服务器等,即使它不是'默认'

如果我评论第二个条目,一切都很好。

有关如何纠正此问题的任何建议?


编辑:如果我更改设置以使用相同的用户名和密码,一切都很好,所以这不仅仅是django在名称上混淆的问题。 IE:

DATABASES = {
    'default': {
        'ENGINE': 'django.contrib.gis.db.backends.postgis',
        'NAME': 'myprojectdb',
        'USER': 'myprojectuser',
        'PASSWORD': 'my_secret_password',
        'HOST': 'localhost',
        'PORT': '5432',
        'ATOMIC_REQUESTS': True
    },
    'readonly': {
        'ENGINE': 'django.contrib.gis.db.backends.postgis',
        'NAME': 'myprojectdb',
        'USER': 'myprojectuser',
        'PASSWORD': 'my_secret_password',
        'HOST': 'localhost',
        'PORT': '5432',
        'ATOMIC_REQUESTS': True
    }
}
django database postgresql migration
1个回答
0
投票

这两个配置共享相同的数据库名称'NAME': 'myprojectdb'所以当你尝试迁移dbname似乎冲突,所以应用程序有一个犹豫不决的使用前一个或后一个

© www.soinside.com 2019 - 2024. All rights reserved.