Database migration with alembic or phinx

어떤 언어로 개발하든 데이터베이스를 수정할 일이 생기는 경우가 발생한다. 개발자의 개발 머신과 테스트 서버 그리고 상용 서버에 이르기까지 모두 적용해 주어야 한다. 때로는 어떤 상황으로 되돌아가야 하는 경우도 생긴다. 이와 같은 DB 변경 사항 적용을 마이그레이션이라 부르며, CodeIgniter나 Laravel 그리고 Django에서는 마이그레이션 기능을 내장하고 있다. 프레임워크와 별도로 작동하는 패키지가 있는지 찾아보다가 두 가지를 발견하였다.

alembic은 python용 DB 마이그레이션 패키지이고, phinx는 php용 도구이다.

사용법은 프레임워크에서 제공하는 기능과 별 차이가 없다.

한 가지 눈에 띄는 게 있다면 phinx는 change() 메서드에 특정 메서드를 사용하여 마이그레이션 코드를 작성하면, 리버스 코드를 작성하지 않아도 rollback이 자동으로 된다고 하는 점이 특징으로 보인다.

아직 사용해 보지는 않았지만, 자동으로 create & drop이 된다면 편리할 것 같다. 사용해보고 후기를 이어서 작성해 볼까 한다.

Leave a Comment