LoginSignup
0
1

More than 3 years have passed since last update.

SpannerマイグレーションツールRatchetを作りました

Posted at

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で投げていただければと思います!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1