makotan _at_ gmail dot com

Flyway方式のDBマイグレーションとgit flowの組み合わせから来る違和感

ってのを最近感じたのでちょっとメモ


定義としてFlyway方式のDBマイグレーションとは
1__XXXXX.sqlみたいな番号付きのSQLを用意してこれを順番に実行してDBの構成管理をする方式
XXXXXの所は任意の名前をつけれる


git flowは開発毎にdevelopからブランチ切ってあとでmergeしていく方式(プルリクもあり)


で、違和感・・・
同じタイミングでdevelopから2つのブランチが出来たとする。
FLW-1000 5__foo.sqlを追加してdevelopにmerge
FLW-1001 5__foo_hoge.sqlを追加しながらまだ開発
FLW-1000をmergeしたdevelopから新たなブランチが出来る
FLW-1002 6__foo.sqlを追加してdevelopにmerge
ここでFLW-1001がやっと完成してdevelopにmergeした時


この流れで更新されたSQLファイル
5__foo.sql
6__foo.sql
5__foo_hoge.sql <本当は7じゃ無きゃ駄目。コンフリクトもしない&DB的にはNGかもしれないSQLファイル


で、これを解消するには「人が確認する」事しか出来ないのかと。
実は、このファイル名を使ったナンバリング方式そのものがこの問題の根本原因じゃ無いのかとちょっと思った
なんかgitの流れとあってないというかSVNでmasterブランチ一本で開発してるあのスタイルならあってたなと