이전 포스트에서 PostgreSQL 테이블을 생성하고 settings.py 에 연결하는 방법을 알아봤다.
이제 DB를 생성했으면, 패스워드를 설정해줘야 migration이 된다.
> sudo -u password postgres psql
> postgres-# password postgres
Enter new password for user "postgres": <비밀번호 입력해주기>
Enter it again: <비밀번호 한 번 더 입력해주기>
> postgres-# \q
이렇게 비밀번호를 설정한 뒤 이제 이어서 settings.py 에 패스워드를 입력해주자.
난 처음에 DB를 만들고 password를 따로 만들지 않았는데, 만들지 않았더니 migration에 실패했다.
> pyenv activate drawing-refer-wiki
(drawing-refer-wiki) > python3 manage.py makemigrations
(drawing-refer-wiki) > python3 manage.py migrate
비밀번호를 세팅해주고 나면 migration이 성공적으로 되었다는 알림을 볼 수 있다.
DB에 설령 유의미한 데이터가 없다고 하더라도 django migration을 해줘야 프로젝트를 돌릴 수 있다.
회사에서 처음 일을 할 때 당연히 마이그레이션을 안 해도 세팅만 하면 기존 프로젝트가 돌아갈 줄 알았는데, 이걸 안 해주면 XXX column이 없습니다~ 라는 식의 에러 메시지가 뜬다.
Django makemigration, migrate는 데이터베이스에 해당 모델에 상응하는 테이블을 만들어주는 역할을 한다.
settings.py에 3rd party DB를 연결했다 해도, migration이 없으면 그 스키마가 적용되지 않는 것이다.