DBはMySQLで。
- flyway-playでマイグレーションする
- マイグレーションしたDBのテーブルを消す
- もう一度アクセスするとtable doesn't existになる
という流れになるので、テーブルschema_versionで対象となるレコード消してからもう一度play runなどするとまたマイグレーションが走る。
ちなみにschema_versionはこんなの。
mysql> select * from schema_version -> ; +----------------+---------+--------------+------+----------------------+-------------+--------------+---------------------+----------------+---------+ | installed_rank | version | description | type | script | checksum | installed_by | installed_on | execution_time | success | +----------------+---------+--------------+------+----------------------+-------------+--------------+---------------------+----------------+---------+ | 1 | 1 | Create table | SQL | V1__Create_table.sql | 666517769 | root | 2016-03-26 03:45:49 | 25 | 1 | | 2 | 2 | Create table | SQL | V2__Create_table.sql | -2132223336 | root | 2016-03-26 03:45:49 | 11 | 0 | +----------------+---------+--------------+------+----------------------+-------------+--------------+---------------------+----------------+---------+ 2 rows in set (0.00 sec)
あと、SQLがsyntax errorなどを起こしても、同様のことが起こるので、やっぱりschema_versionの対象レコードを消すしか無い。