[Django] 장고 Model과 Migration 이해하기

2026. 6. 1. 23:10·Django
반응형

 

Django Model

  • 데이터베이스의 테이블을 Python 클래스로 표시한 것 (테이블 구조 정의)

예를 들어 게시글 데이터를 저장할 때,

게시글에는 <제목, 본문, 작성자 이름, 좋아요 수, 생성 시간> 등의 정보가 필요

이러한 정보를 데이터베이스에 저장하기 위해 모델을 사용

 

Django 모델 생성 방법

  • models.Model을 상속받아 class 정의
  • 타입에 맞는 field를 통해 속성 정의
from django.db import models

# 게시물
# - 제목, 본문, 작성자 이름, 좋아요 개수, 게시물 생성 시간

class Post(models.Model):
    title = models.CharField(max_length=128)
    body = models.CharField(max_length=1024)
    author_name = models.CharField(max_length=32)
    points = models.PositiveIntegerField(default=0)
    created_at = models.DateTimeField(auto_now_add=True)
    
    def __str__(self): # 모델 객체를 문자열로 출력
        return f"{self.id}, {self.title}"

 

 


 

Migration 생성

  • 데이터베이스의 스키마(테이블 구조 등)를 관리하는 데 사용되는 파일
  • 모델의 변화를 파일을 통해 순차적으로 기록
  • migration 생성 방법: `python manage.py makemigrations`
  • migrate 명령어를 통해 데이터베이스를 특정 상태로 변경하거나 이전 상태로 롤백

 

`makemigrations`를 실행하면 장고가 모델의 변경 사항을 감지하여 Migration 파일 생성

post/
└── migrations/
        └── 0001_initial.py

 

데이터베이스에 반영

  • Migration 파일 생성 후 실제로 데이터베이스에 적용하려면 migrate 실행 필요
    • `python manage.py migrate`

 

Migration 동작 과정

Model 작성
       ↓
makemigrations
       ↓
Migration 파일 생성
       ↓
migrate
       ↓
DB 테이블 생성

 

 

[참고] 실전! Django 입문 강의

반응형
'Django' 카테고리의 다른 글
  • [Django] 좋아요 기능 구현과 F Expression
  • [Django] ORM으로 데이터 생성, 조회, 수정, 삭제(CRUD) 해보기
  • [Django] 장고 App 생성과 등록
  • [Django] 장고 프로젝트 생성 및 실행 방법
올콩
올콩
콩 심은 데 콩 난다
  • 올콩
    콩스토리
    올콩
  • 전체
    오늘
    어제
    • 분류 전체보기 (226) N
      • SSAFY (10)
      • Algorithm (123)
        • 이론 (6)
        • 백준 (BOJ) (114)
        • 프로그래머스 (2)
        • 코드트리 (1)
      • Trouble Shooting (11)
      • Frontend (7)
      • React (17)
      • Next.js (5)
      • Vue (4)
      • Django (12) N
      • Node.js (2)
      • HTML (9)
      • DevOps (4)
        • Git (4)
      • Language (13)
        • JavaScript (0)
        • Java (13)
      • Embedded (1)
      • CS (5)
        • Network (1)
        • Blockchain (4)
      • 자격증 (2)
      • 기타 (1)
        • Tistory (1)
  • 블로그 메뉴

    • GitHub
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    구현
    티스토리챌린지
    Java
    수학
    Algorithm
    오블완
    싸피
    백준
    bfs
    알고리즘
    SSAFY
    그리디
    Next.js
    힙
    중복순열
    Heap
    순열
    React
    dfs
    django
    DP
    html5
    파이썬
    블록체인
    백트래킹
    Error
    SSAFYcial
    우선순위큐
    브루트포스
    강의
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
올콩
[Django] 장고 Model과 Migration 이해하기
상단으로

티스토리툴바