글을 쓰기 앞써 아래 Model 클래스를 정의하고 구현까지 완료했으며, SQLite 설치과정은 다루지 않는다.

이름가격칼로리
더블와퍼9,600842
트리플머쉬룸 X8,100776
통새우와퍼7,700741

📕 Data migration

데이터 이관 또는 데이터 마이그레이션(Data migration)은 데이터를 선택, 준비, 추출 및 변환하여 한 컴퓨터 스토리지 시스템에서 다른 컴퓨터 스토리지 시스템으로 영구적으로 전송하는 프로세스이다. <위키백과>

정의한 Model 형태 그대로 실제 데이터베이스 안에 테이블을 생성하는 것

< 참고 >
Django 는 기본적으로 SQLite 라는 파일 기반의 데이터 베이스를 내장하고 있다.

일단 명령어로 개발서버를 동작시켜보자

아래와 같은 오류가 발생한다. 해석해보면~
적용되지 않은 마이그레이션이 18개 있습니다. apps(admin, contenttypes, sessions)에 대한 마이그레잇녀을 적용할 때까지 프로젝트가 제대로 작동하지 않을 수도 있습니다. 'python manage.py migrate'를 실행하여 적용하십시오.

Django에 내장된 기본 기능들도 동작을 위해 데이터베이스를 필요로 한다. 그런 기본 동작들 또한 mgration이라는 단위로 미리 작성되어 있으며, 이들을 적용시켜 데이터베이스에 테이블을 만들어주어야한다.

📗 마이그레이션 적용시키기

Ctrl + C 로 서버를 종료하고 python manage.py migrate 을 실행하면 Django가 이미 가지고 있는 마이그레이션들을 적용시킬 수 있다.

위는 마이그레이션을 적용시켜 기본 테이블을 정상적으로 생성했다는 것이다.

📕 Burger 클래스 마이그레이션

이제 기본적인 클래스를 마이그레이션 했으니 개발자가 만든 클래스를 마이그레이션 해보자.

📗 마이그레이션 파일 생성

먼저 개발자 클래스의 마이그레이션 파일을 생성해야한다. 명령어는 manage.py의 makemigrations을 사용한다.

python manage.py makemigrations burgers
Migrations for 'burgers' :
	burgers/migrations/001_initial.py
		-Create model Burger

Burger 클래스가 속한 burgers app에 대한 마이그레이션을 생성한다. 위 출력 결과는 burgers app 에는 0001_initial.py 라는 마이그레이션이 생성되엇으며, 해당 마이그레이션 Burger model을 생성함을 알려준다.

📗 마이그레이션 파일을 데이터베이스에 적용

이후 생성한 마이그레이션 파일을 데이터베이스에 적용하는 코드는

python manage.py migrate burgers
Operations to peforom:
	Apply all migrations: burgers
Running migrations:
	Applying burgers.0001_initial...OK

burger의 모든 마이그레이션을 적용할 것이라 알려준 후, burgers app의 0001_initial 이라는 마이그레이션을 적용하는데 성공된 것이 출력된다.

📗 SQLite 로 확인

테이블 목록을 새로고침해보면 burgers_burger 테이블이 생성된 것을 확인 할 수 있다.

이후 맨 처음에 Model로 정의했던 burger 클래스가 데이터베이스에 생성된 것을 확인 할 수 있다.

📕 정리

  • Model 클래스를 생성하거나 내용을 변경
  • 변경된 내용을 데이터베이스에 적용할 수 있는 마이그레이션 파일 생성(makemigrations)
  • 마이그레잇녀 파일을 데이터베이스에 적용(migrate)
profile
이봐... 해보기는 했어?

2개의 댓글

comment-user-thumbnail
2023년 12월 10일

와 멋진 주흔님 백엔드좀 치시네요 저랑 프러젝트 같ㅇ 하실?

답글 달기
comment-user-thumbnail
2024년 3월 20일

The importance of efficient data migration in modern business environments cannot be overstated, especially when moving critical customer data into systems like Intercom. Utilizing intercom migration services can significantly streamline this process, ensuring data integrity and continuity. For businesses looking to enhance their customer support and engagement, this specialized service is invaluable.

답글 달기
Powered by GraphCDN, the GraphQL CDN