이번에는 django 프레임워크의 디비에 관한 강력한 기능이자 장점인 orm 기능의

마이그레이션에 관해 간단하게 알아보고자 합니다.

  1. 우선 models.py 파일을 만들어서 디비 스키마를 넣어주는 방법이 있습니다. 이 방법은 models.py 안에 여러가지 스키마를 넣어주는 방법인데요.
  2.  조금 더 규모가 크거나 테이블별로 파일을 생성하신다 하면 models 라는 파이썬 패키지를 생성해주고, 그안에 테이블별로 파일을 생성해 주셔도 됩니다.

여기서는 2번에 관하여 마이그레이션을 진행할 것 입니다.

우선 models라는 패키지 안에 user.py 라는 테이블 파일을 생성해줍니다.

그리고 그 안에 User 모델 클래스를 생성하고 간단한 스키마를 작성하였습니다.

from django.db import models
from django.utils import timezone

class User(models.Model):
    user_id = models.CharField(max_length=100, primary_key=True)
    email = models.CharField(max_length=100, default="")
    name = models.CharField(max_length=30, default="")
    gender = models.CharField(max_length=10, default="남자")
    age = models.DateTimeField(max_length=100, default=timezone.now)    
    country = models.CharField(max_length=100, default="")
    etc = models.TextField(default=None, null=True)
    group = models.CharField(max_length=50, default="client")

 

그리고 같은 경로 상에 __init__.py 파일이 존재해야 하는데요

__init__.py 파일 안에

from .user import *

로 작성해 줍니다.

이제 위 모델패키지가 존재하는 앱을 django  settings.py에 포함을 시켜줍니다.(이미 있다면 안하셔도 됩니다.)

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    '앱이름',
    'client',
]

여기까지 완료되었다면 django 마이그레이션 파일을 django가 생성하도록 스크립트를 콘솔상에서 실행해줍니다.

python manage.py makemigrations '앱이름'

스크립트 실행 후에 앱 패키지 안에 migrations 디렉터리가 자동으로 생성되고 그 안에 마이그레이션 파일도 생성됩니다.

여기까지 마이그레이션 파일 생성 과정입니다.

후에 settings.py 파일 안에 있는 디비 정보와 매칭되는 디비정보가 같다면 바로 마이그레이트까지 가능합니다.

디비에 스키마를 반영하고 싶다면 아래 스크립트를 실행하여 주면 됩니다.

python manage.py migrate