【发布时间】:2019-09-07 21:53:57
【问题描述】:
我的数据库和项目使用此数据库设置运行良好:
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'myprojectdb',
'USER': 'myprojectuser',
'PASSWORD': 'my_secret_password',
'HOST': 'localhost',
'PORT': '5432',
'ATOMIC_REQUESTS': True
},
}
但我想像这样为我的只读数据库用户添加一个“只读”数据库条目,以便我可以运行 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 对名称感到困惑的问题。即:
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