[Django] 마이그레이션

cdwde·2021년 3월 30일
0

Django

목록 보기
5/13

🌝 본 포스트는 리액트와 함께 장고 시작하기 Complete + 별도로 공부한 내용으로 이루어져있습니다

🎈 마이그레이션

모델의 변경 내역을 데이터베이스 스키마로 반영시키는 효율적인 방법을 제공하는 관련 명령

🚩 관련 명령어

  1. 마이그레이션 파일 생성
py manage.py makemigrations <앱_이름>
  1. 지정 마이그레이션의 SQL 내역 출력
py manage.py sqlmigrate <앱_이름> <마이그레이션_이름>
  1. 지정 데이터베이스에 마이그레이션 적용
py manage.py migrate <앱_이름>
  1. 마이그레이션 적용 현황 출력
py manage.py showmigrations <앱_이름>

🎈 마이그레이션 파일

  • 데이터베이스에 어떤 변화를 가하는 Operation 나열

  • 같은 마이그레이션 파일이라도 DB 종류에 따라 다른 SQL 생성

  • 마이그레이션 파일은 모델의 변경 내용 누적 (실제 스키마에 변화가 없더라도 변경 있으면 생성하기)

  • 적용된 마이그레이션 파일은 삭제 X


🎈 새로운 필드가 필수 필드일경우

makemigrations 명령을 수행할 때 기존 Record들에 어떤 값을 채울 것인지?

1) 지금 그 값 입력하겠음
2) 명령 수행 중단


🎈 마이그레이션 초기화

  1. app > migrations에서 init.py 빼고 다 지우기

  2. project에서 db.sqlite3 지우기

  3. 모델 재설계

  4. 마이그레이션

python manage.py makemigrations		#db가 알아듣도록 번역
python manage.py migrate		#db에 적용

0개의 댓글