본문 바로가기
Django + Python

새 app 생성 + 데이터베이스 마이그레이션

by Doromi 2024. 1. 1.
728x90
반응형

> python manage.py startapp 새로운APP이름

config/settings.py의 INSTALLED_APPS = [

새로운APP이름 추가,

: 새로운 APP을 사용할 것이라고 django에게 알려주는 것. 

 

 새로운 APP에 models.py 에 class 생성

from django.db import models // django가 가진 모듈 가져오기

class NEWModel(models.Model): //새로운 모델을 나타내는 Model 클래스 정의
	name=models.CharField(max_length=30)
   	id=models.IntegerField(default=0)

 

>python manage.py runserver 를 바로하면 경고문구 확인 가능

You have 18 unapplied migration(s)......

그 이유는 Django에 내장되어 기본 기능들을 구현해놓은 app들의 동작을 위해 데이터베이스 테이블을 만들어주어야 한다.이 내용들이 migration이라는 단위로 미리 작성되어 있고, 이들을 적용시켜 데이터베이스에 테이블을 만들어주어야 Django가 가진 기본 기능들을 정상적으로 작동할 수 있다.

 

>python manage.py migrate

 

DB Brower for SQLite 설치(https://sqlitebrowser.org/)

  • Windows:C:\Users\{사용자명}\PycharmProjects\{프로젝트이름}\db.sqlite3
  • macOS:~/PycharmProjects/{프로젝트이름}/db.sqlite3

데이터베이스 열기 후, 테이블을 확인 할 수 있다.

 

아까 Model에 정의한 클래스가 데이터 베이스 테이블이 되려면 

1. 마이그레이션 파일 생성(makemigrations)

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

  • >python manage.py makemigrations CLASS명
    마이그레이션은 하나의 Model클래스가 아닌, app단위로 생성된다.
  • 0001_initial.py 라는 마이그레이션이 생성됨.
  • >python manage.py migrate CLASS명
  • SQLite browser로 돌아와 생성된 테이블을 확인해볼 수 있다.

 

 

 

728x90
반응형

'Django + Python' 카테고리의 다른 글

Django admin 사용  (0) 2024.01.02
데이터를 가져오는 과정  (0) 2024.01.01
Django의 디자인 패턴  (0) 2024.01.01
Django 개발환경 구성  (0) 2024.01.01
isinstance 사용법  (0) 2023.12.25