본문 바로가기
Back-end

alembic을 이용해 DB 마이그레이션 하기 (1)

by 노아론 2020. 3. 16.

Django를 주로 사용해오면서 Django에 내장된 마이그레이션 기능만을 사용해왔다

최근에 Flask로 작업을 하게 되면서 alembic이라는 DB 마이그레이션 도구를 접할 수 있게 되었다

 

alembic은 SQLAlchemy 단체에서 만든 마이그레이션 도구로 당연히 SQLAlchemy를 이용하여 관리를 할 수 있다

가장 인상깊은 점으로는 미리 SQLAlchemy로 ORM 정의를 하면

alembic upgrade head 와 같이 간단한 명령으로 마이그레이션을 할 수 있다는 것이다

 

Python과 SQLAlchemy를 간단히 알고 있다면 alembic을 익히기에 무리가 없을 것이다

행여나 두가지를 모두 모르더라도 부담 없이 빠르게 습득할 수 있을 것이라고 생각한다.

 

이번 글에서는 alembic을 설치하고, 세팅하는 방법에 대해 다뤄본다.

(Python 3.6으로 진행)

 

 

먼저 가상환경을 마련해준다

$ pip install virtualenv
$ mkdir my_folder
$ cd ./my_folder
$ python -m virtualenv venv

$ ls
venv
$ . ./venv/bin/activate

이제 alembic을 설치해보자

$ pip install alembic

 

설치가 완료되었다면 이제 가상 환경에선 alembic 커맨드를 사용할 수 있게 된다

아래 명령어를 통해 alembic의 로컬 프로젝트를 생성한다

$ alembic init practice

Creating directory /path/to/my_folder/practice...done
Creating directory /path/to/my_folder/practice/versions...done
Generating /path/to/my_folder/alembic.ini...done
Generating /path/to/my_folder/practice/env.py...done
Generating /path/to/my_folder/practice/README...done
Generating /path/to/my_folder/practice/script.py.mako...done
Please edit configuration/connection/logging settings in
'/path/to/my_folder/alembic.ini' before proceeding.

 

나의 디렉토리 구조는 아래와 같은 상태가 되었다

- my_folder
    - alembic.ini
    - practice
        - README  
        - env.py  
        - script.py.mako  
        - versions
    - venv

 

practice라는 이름으로 폴더가 생기고 alembic.ini 파일이 생성됨을 확인할 수 있다

 

지금까지 DB migration 도구인 alembic의 설치와 세팅에 대해 진행하였으며

다음 게시물에서는 DB와의 연결을 위해 alembic.ini 를 수정하고 Migration Script를 작성하는 방법에 대해 다뤄본다.

 

 

이 글이 도움이 되셨다면 공감버튼 부탁드립니다

 

다음 글

alembic을 이용해 DB 마이그레이션 하기 (2)

댓글