배포를 한 후, 디비를 변경했을 때 해당 url로 접속 시 서버 500에러가 노출 되었다.
그때 당시에 이유를 몰랐지만 다른 프로젝트를 진행하면서 env파일에 디버그를 false로 바꿔 준 후, 마이그레이션을 다시 해야 된다는 것을 알았다.
setting.py에서 조건문을 사용하여 디버그 true/false에 따라 각 데이터베이스를 다르게 설정 해두었다.
따라서, db 추가/수정이 이루어진 경우, env 파일에 debug를 false로 설정 후 마이그레이션을 해야 aws db에 데이터가 들어가게 됨
DEBUG = os.getenv("DEBUG") == "True" # env의 True == "True" 인 경우, if DEBUG실행
if DEBUG:
MEDIA_URL = "/media/"
MEDIA_ROOT = BASE_DIR / "media"
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
else: # env의 False == "True" 인 경우, 다르기 때문에 else가 실행
# DEFAULT_FILE_STORAGE = "storages.backends.s3boto3.S3Boto3Storage"
DEFAULT_FILE_STORAGE = "pjt.storages.MediaStorage"
AWS_ACCESS_KEY_ID = os.getenv("AWS_ACCESS_KEY_ID")
AWS_SECRET_ACCESS_KEY = os.getenv("AWS_SECRET_ACCESS_KEY")
AWS_STORAGE_BUCKET_NAME = os.getenv("AWS_STORAGE_BUCKET_NAME")
SECRET_KEY = os.getenv("SECRET_KEY")
AWS_REGION = "ap-northeast-2"
AWS_S3_CUSTOM_DOMAIN = "%s.s3.%s.amazonaws.com" % (
AWS_STORAGE_BUCKET_NAME,
AWS_REGION,
)
DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql",
"NAME": os.getenv("DATABASE_NAME"), # .env 파일에 value 작성
"USER": "postgres",
"PASSWORD": os.getenv("DATABASE_PASSWORD"), # .env 파일에 value 작성
"HOST": os.getenv("DATABASE_HOST"), # .env 파일에 value 작성
"PORT": "5432",
}
}
굳굳!