[python] Flask-RESTful에서 데이터베이스 마이그레이션 방법

Flask-RESTful은 Flask 프레임워크를 기반으로 한 RESTful API를 쉽게 개발할 수 있도록 도와주는 라이브러리입니다. 데이터베이스 마이그레이션은 데이터베이스 스키마의 변경을 관리하는 작업으로, Flask-RESTful에서 데이터베이스 마이그레이션을 수행하는 방법을 알아보겠습니다.

Flask-Migrate 설치

먼저, Flask-Migrate를 설치해야 합니다. Flask-Migrate는 SQLAlchemy를 사용하여 데이터베이스 스키마 변경을 관리하는 도구입니다. 아래의 명령을 사용하여 Flask-Migrate를 설치해주세요.

pip install Flask-Migrate

데이터베이스 초기화

Flask-RESTful에서 데이터베이스 마이그레이션을 수행하기 전에 데이터베이스를 초기화해야 합니다. 데이터베이스 초기화를 위해서는 SQLAlchemy에서 제공하는 db.create_all() 함수를 사용합니다. 아래의 코드는 Flask-RESTful 애플리케이션에서 데이터베이스를 초기화하는 예시입니다.

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
db = SQLAlchemy(app)

# 데이터베이스 모델 정의
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(50), unique=True)

db.create_all()  # 데이터베이스 초기화

위의 코드에서 User 클래스는 데이터베이스의 테이블을 정의하는 모델입니다. db.create_all() 함수를 호출하여 데이터베이스를 초기화합니다. SQLALCHEMY_DATABASE_URI 설정값에는 데이터베이스의 종류 및 연결 정보를 입력해야 합니다.

데이터베이스 마이그레이션

데이터베이스를 초기화한 후에는 스키마 변경을 관리하기 위해 데이터베이스 마이그레이션을 설정해야 합니다. Flask-Migrate는 데이터베이스 마이그레이션을 위한 migrate 명령을 제공합니다. 아래의 명령을 사용하여 데이터베이스 마이그레이션을 설정합니다.

flask db init

위의 명령을 실행하면 migrations 폴더가 생성되며, 데이터베이스 마이그레이션에 필요한 파일들이 생성됩니다.

다음으로, 데이터베이스 마이그레이션의 첫 번째 버전을 생성합니다. 아래의 명령을 사용하세요.

flask db migrate -m "Initial migration"

위의 명령을 실행하면 migrations 폴더 내에 데이터베이스 마이그레이션을 위한 스크립트 파일이 생성됩니다. -m 옵션을 사용하여 마이그레이션 메시지를 작성할 수 있습니다.

마지막으로, 마이그레이션을 적용하여 데이터베이스 스키마를 변경합니다. 아래의 명령을 사용하세요.

flask db upgrade

위의 명령을 실행하면 migrations 폴더 내의 스크립트 파일이 실행되며, 데이터베이스 스키마가 변경됩니다.

마무리

Flask-RESTful에서 데이터베이스 마이그레이션을 수행하는 방법에 대해 알아보았습니다. Flask-Migrate를 사용하여 데이터베이스 초기화 및 마이그레이션을 쉽게 관리할 수 있습니다. 자세한 내용은 Flask-Migrate 공식 문서를 참고하시기 바랍니다.