Моя база данных и проект отлично работают, используя эту настройку базы данных:
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'myprojectdb',
'USER': 'myprojectuser',
'PASSWORD': 'my_secret_password',
'HOST': 'localhost',
'PORT': '5432',
'ATOMIC_REQUESTS': True
},
}
Но я хочу добавить запись базы данных «только для чтения» для моего пользователя db только для чтения, например, так, чтобы я мог запустить 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.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
}
}