우선 강의를 통해 정말 많은 것을 배우고 있어 감사의 말씀부터 드립니다^^
문제 요약: 도커 컨테이너에 진입 후 python3 manage.py migrate 명령을 통해 테이블 생성 후에도, 장고 admin 페이지에 들어가 보면 데이터베이스가 생성되지 않았다는 오류가 나옵니다.
azure postgresql을 장고 코드와 연동한 코드는 다음과 같습니다.
그리고 docker에 진입하여 migrate 명령을 다음과 같이 진행하여 테이블들이 생성되는 것을 확인하였습니다.(이후 superuser도 생성하였습니다.)그럼에도 장고 admin페이지 로그인해서 들어가 보면 데이터베이스가 생성되지 않아서 발생하는 에러가 나타납니다.혹시나 하여 docker exec 명령을 활용하여 실행 중인 컨테이너에 진입하여 보니 migrate를 한 이후에도 다음과 같이 테이블이 생성되지 않은 모습이 나타납니다.장고와 azure postgresql 데이터베이스와 연동은 이루어진 것으로 보이는데, 어떤 이유로 테이블 생성이 안 되는 지를 모르겠습니다.ㅠㅠ
안녕하세요.
일단 현재의 장고 프로젝트가 바라보고 있는 settings를 정확하게 파악해볼 필요가 있습니다.
장고는 구동환경에 따라 다른 settings를 로딩할 수 있는 데요.
python manage.py migrate 시에 사용된 settings와
장고 웹서버 구동 시에 사용된 settings가 다를 수 있습니다.
둘 다 DJANGO_SETTINGS_MODULE 환경변수가 지정된 상황이라면, 그 경로의 settings를 사용하지만, DJANGO_STTINGS_MODULE 환경변수가 지정되지 않은 상황이라면
manage.py 내에 DJANGO_SETTINGS_MODULE 에 대한 디폴트 로딩 값을 지정하는 데요. 강의대로 진행하셨다면 settings.dev 가 지정이 되었을 테구요. 그렇다면 python manage.py migrate 시에는 sqlite3 데이터베이스에 migrate가 되었을 것입니다. python manage.py migrate 후에 ls 명령을 내려보시면, db.sqlite3 파일이 생성이 되어있나요?
장고 웹서버 구동 시에는 wsgi.py 내에 DJANGO_SETTINGS_MODULE 에 대한 디폴트 로딩 값을 지정합니다. 강의대로 진행하셨다면 settings.prod 가 지정이 되었을 테구요.
위 상황이라면, python manage.py migrate 명령 시에 --settings 옵션을 통해 사용할 settings를 명시적으로 지정하실 수 있습니다.
python manage.py migrate --settings=backend.settings.prod
살펴보시고, 댓글 남겨주세요.
화이팅입니다. ;-)
답글
정제영
2023.02.22말씀해주신대로 DJANGO SETTINGS MODULE을 prod로 설정하지 않았습니다ㅠㅠ 오랜 시간동안 답을 찾지 못해 답답했는데, 정말 감사드립니다!!^^ 오늘로 배포를 성공해보니, 더 열심히 해봐야겠단 생각이 들었습니다!! 다시 한번 더 감사드립니다!
이진석
2023.02.22잘 해결하셨습니다.
차근차근 화이팅입니다. ;-)
정제영
2023.02.23네 감사합니다!!