user custom후 eb에 배포
AWS EB에 배포 중 몇가지 문제 직면
- accounts의 마이그레이션 중 auth에 종속성을 가짐.
- 실제로 accounts의 마이그레이션 파일을 보면 아래 코드가 있음.
dependencies = [ ('auth', '0009_alter_user_last_name_max_length'), ]
- 시도 결과 먼저 auth가 migrate되고 난 뒤, accounts가 migrate 되야 함
- 보통 migrate는 알파벳순으로 위의 원칙이 지켜지지 않는 것 같음.
- 로컬에서는 되지만 이후 rds에서는 계속
django.db.utils.ProgrammingError: column course_classdata.created_at does not exist
와 같은 오류가 뜸.
몇가지 팁
- 로컬에서 다 한뒤
export DJANGO_SETTINGS_MODULE=sshsapp2.settings.aws_prod
와 같은 명령으로 현재 켜진 zsh에 환경변수를 등록해 줌(DB까지 모두) - 이후
python manage.py makemigrations --settings=sshsapp2.settings.aws_prod
와 같은 명령으로 로컬에서 DB, S3를 연결한 채로 테스트 가능함. - 위의 테스트가 끝나면, EB에 실제 환경변수를 등록하여 배포하면 됨.
python manage.py showmigrations --settings=sshsapp2.settings.aws_prod
을 통해 내역을 확인python manage.py migrate auth --settings=sshsapp2.settings.aws_prod
python manage.py migrate --settings=sshsapp2.settings.aws_prod
- 위의 순서대로 auth 를 migrate하고 나머지를 함.
- eb에서는 makemigration은 의미가 없는 것 같고, migrate가 의미있는 것 같음
- craetesuperuser도 같은 방식으로 로컬에서 진행하면, RDS에 기록됨.(!!)
테이블 존재 오류 해결
django.db.utils.ProgrammingError: column course_classdata.created_at does not exist
와 같은 오류가 뜸.- DB를 날리고 새로운 DB에서 진행하니 해결됨.
Leave a Comment