django

TIL230403 startapp, makemigrations, migrate

베스트오버 2023. 4. 3. 23:16

상황

장고를 배우려면 파이썬의 class를 알아야한다.

db를 객체처럼 쓴다고 하는데

아직 초반이라 깨작 중이다.

 

django-admin startapp <app_name>

Django 프레임워크에서 새로운 애플리케이션을 생성할 대 사용하는 명령어

이 명령어를 실행하면 Django 프로젝트 내부에 새로운 애플리케이션 폴더가 생성되며, 해당 폴더 내부에는 기본적인 애플리케이션 구조와 파일들이 생성된다.

 

user, blog 등의 새로운 애플리케이션을 생성하는 코드는 다음과 같다.

django-admin startapp (user, blog etc...)

이렇게 생성된 애플리케이션 폴더 내부에는 models.py, views.py, admin.py 등의 파일이 있으며, 이 파일들을 수정하고 추가함으로써 새로운 애플리케이션을 만들 수 있다. 이때, Django admin을 사용하면 편리하게 애플리케이션을 관리 할 수 있다.

추가로, settings.py의 INSTALLED_APPS 에 추가해야 django가 인식을 한다.

 

 

makemigrations, migrate

Django의 migrations는 데이터베이스 스키마의 변경사항을 관리하는 도구다. 데이터베이스 스키마의 변경사항이란, 새로운 테이블을 생성하거나 필드를 추가, 수정, 삭제하는 등의 작업을 말한다.

 

migrations를 사용하면 스키마 변경사항을 추적하고, 변경사항에 대한 데이터베이스 스키마 마이그레이션을 생성할 수 있다. 마이그레이션은 변경사항을 데이터베이스에 적용하는 과정을 말한다.

 

순서는 다음과 같다.
1. models.py에서 모델을 정의한다.

2. makemigrations 명령어를 사용하여 마이그레이션을 생성한다.
    이때, 마이그레이션 파일은 애플리케이션 폴더 내부의 migrations 폴더에 생성된다.

python manage.py makemigrations <app_name>

3. migrate 명령어를 사용하여 마이그레이션을 적용한다. 이때, migrate 명령어는 데이터베이스에 마이그레이션을 적용하는 역할을 한다.

python manage.py migrate

이러한 migrations와 migrate를 사용하여 Django에서 데이터베이스 스키마를 관리할 수 있다.