DBmate는 왜 사용할까?

이정우·2022년 11월 23일
0

프로젝트를 진행하는 와중에 데이터베이스를 생성하고, 프로젝트에 필요한 테이블을 생성하는 작업이 있었다. 그 과정에서 물론 터미널에서 mysql 들어가서 데이터베이스를 생성하기도 했지만, 그후에 다른 방법으로 데이터베이스를 한번 더 생성했다.

DBmate
바로 이 dbmate로 만드는것이다. 일단 dbmate를 사용하기 위해서는 dbmate를 설치해야한다.

brew install dbmate

설치 후 작업을 할 폴더에 .env 파일을 만든후 거기에 database_url을 설정해준다

설정을 한 뒤 마이그레이션 파일을 생성할 폴더에 들어가서 마이그레이션 파일을 만들면 된다.

dbmate new tableName

각각의 테이블에 대한 마이그레이션 파일을 만든후 각각의 마이그레이션 파일 안에 들어가서 sql을 사용해서 table에 대한 설정을 아래와 같이 해줄수 있다.

모든 테이블에 대한 설정이 끝났다면, db 폴더 바로 상위 폴더에서

dbmate up

을 사용하면 작성한 마이그레이션 파일들을 하나의 schema.sql 파일로 만들어준다.

근데 이렇게 만들었을때 이게 왜 더 편한지를 전혀 모르겠었다. 터미널에서 작성할때 보다 좀 더 편하게 만들수 있는건 맞지만, 굳이 이렇게 만들어야되나? 라는 생각이 끊이지를 않았다.

근데 조금만 더 멀리 생각해봤을때 만약에 만들어야할 테이블 엄청나게 많다면, 그리고 나중에 그 엄청나게 많은 테이블을 터미널로 하나하나 관리하고, 수정하고 한다면, 그거는 너무 괴로울거 같다.
그리고 나중에 현업에서 동일한 데이터베이스를 여러명이서 공유하고 있는 상태에서 테이블을 수정할 일이 생긴다면, 그리고 그 수정하는 작업을 새 마이그레이션 파일에서 작업후 다시 schema.sql에 업데이트 해준다면, 언제 어떤걸 수정했는지가 로그로 뜨게 된다. 그렇게 함으로써 데이터베이스 관리를 조금더 수월하게 해주는 역할이 이 dbmate의 역할이 아닐까 라는 생각이 든다.

0개의 댓글