Spannerのマイグレーションツール Ratchet を作りました。
背景
プロダクションで使えるSpannerのマイグレーションツールを調査していて、
wrenchが良さそうだったのですが、以下のような問題がありました。
- マイグレーションファイルの名前が連番で作られるため、複数人の開発で競合する
- DMLやパーティション化DMLへの対応がない(現在は、一部対応があるようです)
そこで、それらを解決したシンプルなマイグレーションツールを作りました。
インストール
リリースページからダウンロードしてパスを通してください。
使い方
以下のステップで使えます。シンプルに使えるように心がけました。
1. マイグレーション用のテーブルを作成する(1回目のみ実行が必要)
$ ratchet init -p {プロジェクトID} -i {インスタンス名} -d {データベース名}
Creating migration table...
Migration table has been created!!
2. マイグレーション用のファイルを作成する
$ ratchet new
New migration file has been created in migrations/2021-02-07_07-38-03_23229.sql
- 実行したディレクトリにmigrationsフォルダが作られ、その中にマイグレーションファイルが作られます。
- 何もオプションを指定しなければDDL用のファイルが作られます。DMLやパーティション化DMLを使いたい場合は
--dml
、--pdml
を付与してください。
3. マイグレーションを実行する
$ ratchet run -p {プロジェクトID} -i {インスタンス名} -d {データベース名}
Migration started.
running 2021-02-07_07-38-03_23229 ... done.
Migration completed!
- 2にて作成されたmigrationsフォルダと同じ階層で
ratchet run
を走らせる必要があることに注意してください。
終わりに
現状プロダクションで使用していますが、特に問題はありません。
かなりシンプルに使えるツールなので、是非試してみてください。
改善点などありましたらIssueで投げていただければと思います!