elasticbeanstalk 배포 server 500 error

jongeun·2022년 12월 29일
1

배포를 한 후, 디비를 변경했을 때 해당 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",
        }
    }
profile
기록으로 성장하는 개발자 되기

1개의 댓글

comment-user-thumbnail
2022년 12월 29일

굳굳!

답글 달기