[python] SQLAlchemy에서 데이터베이스 마이그레이션

데이터베이스 마이그레이션은 소프트웨어 개발의 일반적인 부분이며, 데이터베이스 스키마의 변경을 추적하고 이를 반영하는 과정입니다. SQLAlchemy는 파이썬에서 데이터베이스 작업을 수행하는데 사용되는 강력한 라이브러리입니다. 이 블로그에서는 SQLAlchemy를 사용하여 데이터베이스 마이그레이션을 수행하는 방법에 대해 알아보겠습니다.

1. Flask-Migrate 설치하기

SQLAlchemy를 이용한 데이터베이스 마이그레이션을 수행하기 위해 Flask-Migrate를 설치해야 합니다. Flask-Migrate는 Flask 애플리케이션의 데이터베이스 마이그레이션 도구입니다. 아래 명령어를 사용하여 Flask-Migrate를 설치합니다.

$ pip install Flask-Migrate

2. 데이터베이스 설정하기

데이터베이스 마이그레이션을 위해 SQLAlchemy와 데이터베이스 정보를 설정해야 합니다. Flask 애플리케이션의 config 파일에 다음과 같이 데이터베이스 URL을 설정합니다.

# config.py

SQLALCHEMY_DATABASE_URI = 'your_database_url'

3. 데이터베이스 마이그레이션 초기화

데이터베이스 마이그레이션을 위해 초기 설정을 해야 합니다. 아래 명령어를 사용하여 데이터베이스 마이그레이션을 위한 초기 설정 파일을 생성합니다.

$ flask db init

4. 마이그레이션 스크립트 생성

마이그레이션 스크립트는 데이터베이스 스키마 변경 내역을 추적하는 역할을 합니다. 아래 명령어를 사용하여 마이그레이션 스크립트를 생성합니다.

$ flask db migrate -m "initial migration"

-m 옵션 뒤에는 마이그레이션에 대한 메시지를 작성해주어야 합니다.

5. 마이그레이션 적용

마이그레이션 스크립트를 실제로 데이터베이스에 적용하기 위해 다음 명령어를 사용합니다.

$ flask db upgrade

이 명령어를 통해 마이그레이션 스크립트에 명시된 데이터베이스 스키마 변경 내역이 적용됩니다.

6. 롤백

마이그레이션 적용 후, 문제가 발생하여 롤백해야 하는 경우 다음 명령어를 사용하여 롤백할 수 있습니다.

$ flask db downgrade

위 명령어를 실행하면 마이그레이션 적용 이전의 상태로 데이터베이스가 롤백됩니다.


이제 SQLAlchemy를 사용하여 데이터베이스 마이그레이션을 수행하는 방법을 알아보았습니다. SQLAlchemy와 Flask-Migrate를 함께 사용하면 데이터베이스 스키마 변경 시 편리하게 마이그레이션 작업을 수행할 수 있습니다. 더 자세한 내용은 공식 문서를 참조하시기 바랍니다.