Ну, у меня был один файл настроек раньше, и он отлично работал как на локальном компьютере, так и AWS, конечно, с обеими конфигурациями базы данных в одном файле настроек. Когда бы я ни использовал pu sh мой код на AWS, я бы прокомментировал свою локальную конфигурацию БД, а затем pu sh. Так что, конечно, это раздражает. Я не могу постоянно комментировать и раскомментировать конфигурацию базы данных в одном файле.
Поэтому я решил иметь 2 файла настроек. один для локального, а другой для AWS.
Как только я перетащил код на AWS сервер и запустил миграцию
python manage.py migrate --settings=settings.staging
Он работал и мигрировал. Кстати, это файл настроек, в котором находится моя конфигурация RDS. Теперь, когда я нажимаю на конечные точки с помощью postmant, вывод выглядит как
OperationalError at /account/v1/login
could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?
, что означает, что он все еще читает файл настроек по умолчанию. Почему я заставляю сервер запускать этот конкретный файл настроек постановки? Должен ли я объявить это на nginx, супервайзере или оружейном? Я также использую эти 3 службы.
Ниже приведен файл настроек для постановки.
from .base import *
# --------------- AWS RDS ---------------
DATABASES = {
'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'db name here',
'HOST': 'RDS host here',
'USER': 'postgres',
'PASSWORD': 'pass here',
'PORT': '5432'
}
}
Это мой полный файл staging.py. который имеет только это, в то время как остальная часть настройки импортируется из base.py, который является файлом настроек по умолчанию. Также он имеет локальные настройки.
Любые рекомендации?
Это также то, что я пробовал.
import socket
hostname = socket.gethostname()
if hostname == "staging":
from settings.staging import *
Спасибо