Это мое первое Django развертывание приложения, многому нужно научиться. Так что это мои настройки для DATABASES
в settings.py
DEBUG = False
if DEBUG:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
else:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'db_name',
'USER': 'db_user',
'PASSWORD': 'db_password',
'HOST': 'localhost',
'PORT': '',
}
}
Проблема:
- Для исправления ошибки я обновил некоторые поля в моделях локально,
git push
и git pull
на сервере, выполнять миграции на сервере, как обычно, локально; миграции были успешными, однако, они, кажется, не применили
(если это имело какое-либо значение, исправление ошибки было изменено поле некоторого номера телефона с IntegerField
на CharField
, предотвращая ошибка «Убедитесь, что это значение меньше или равно 2147483647»; но странно то, что для мобильного телефона IntegerField
до развертывания и локального запуска не было ошибок *
Путаница:
- Я помню, что только один суперпользователь был создан в базе данных postgres, или, по крайней мере, я так думал, но я могу войти с этой учетной записью суперпользователя как в производстве, так и в разработке (это не имеет значения
DEBUG
установлен на True
или False
), как это возможно ?? - То же самое изображения загружены только один раз, но могут быть просмотрены на веб-сайте, независимо от того, отлажен ли он или нет
Утверждение:
Означает ли это что код выше в settings.py
в корне неверен? В django может быть установлена только одна default
база данных? Или я что-то не так сделал с миграциями?
PS. Я совсем не знаком с командой DATABASE, поэтому любые указатели на решение этой проблемы также приветствуются
Решение для тех, у кого такая же проблема:
Попробуйте Ответ @ruddra ниже, а также перезапуск приложения django:
$ sudo service gunicorn restart
возможно, вы используете apache2
или какой-то другой, чем gunicorn
, перезапуск каким-то образом помог правильной базе данных или изменениям в код для применения.