sql migration

golang-migrate

あんまり情報が見つからなかったので書いた。 難しいとこないからかもしれないが。 dbのcreateができないのが難点かも。

普通にgo getしてもcliが入らないのでmanualに書いてある通りインストール

go get -tags 'postgres' -u github.com/golang-migrate/migrate/cmd/migrate

migrationファイルの作成。便利

migrate create -ext sql -dir sql/migrate initialize

こんな感じのファイルができる

20190610174331_initilize.down.sql
20190610174331_initilize.up.sql

migration

migrate -database 'postgres://[user]@[host]:5432/[database]?sslmode=disable' -path ./sql/migrate -verbose up

不整合が起きるとschema_migrationsというテーブルの不整合だったバージョンにフラグがたつ。

解消するには失敗したバージョンを直してforce実行。

migrate -database 'postgres://[user]@[host]:5432/[database]?sslmode=disable' -path ./sql/migrate -verbose force [version]