장고 프로젝트를 처음 생성하면 디렉터리(dir)에는 다음과 같은 파일과 폴더가 존재할 것이다.
프로젝트가 잘 생성되었는지 확인하기 위해 서버를 실행하면 다음과 같은 오류 메시지가 나타난다.
python manage.py runserver
이 오류 메시지는 아직 18개의 마이그레이션이 있다는 의미이다.
장고에서 마이그레이션(migration)이란 데이터베이스에 적용시켜야 하는 변화에 대한 기록이다.
ex) 댓글 기능이 없던 블로그에 댓글 작성 기능을 추가했을 때, 데이터 베이스에 댓글을 저장하기 위한 공간인 테이블이 필요하다. 이를 데이터베이스에 반영해야 서버를 실행했을 때 웹사이트에 추가한 댓글 기능을 제대로 사용할 수 있다.
장고는 새 프로젝트를 생성할 때 데이터베이스에 기본적으로 필요한 테이블을 미리 만들어두기 때문에 새로운 프로젝트를 생성했을 때 적용해야 할 마이그레이션이 존재한다.
명령프롬포트에 마이그레이션 명령어를 입력하면 아직은 데이터베이스를 만들지 않은 상태이기 때문에 db.sqlite3이라는 새로운 파일이 생성되고, 그 안에 마이그레이션을 반영한 데이터베이스가 생성된다.
python manage.py migrate
기존에 생성되어 있는 데이터베이스에 대해 마이그레이션을 진행할 때는 makemigrations를 통해 장고에게 모델을 수정했음을 알려준다.
python manage.py makemigrations
그다음 migrate로 데이터베이스에 반영하면 된다.
python manage.py migrate
참고: Do it! 장고+부트스트랩 파이썬 웹 개발의 정석
반응형