この記事で説明すること
golang-migrate
ライブラリを使っていてデータベースのマイグレーションをしたときに
error: Dirty database version 1. Fix and force version.
というエラーが出た時の対処法
環境
- golang 1.15
- MySQL
解決法
migrate force
コマンドを使う
$ migrate -database 'mysql://root:golang@tcp(mysql:3306)/golang_db?charset=utf8&parseTime=true&loc=Asia%2FTokyo' -path migrations/ ${VERSION}
-database以降はDBのURLを指定
-pathでマイグレーションファイルの場所指定
${VERSION}の部分はエラーで出ているVERSIONを数字で指定。
エラーが起きた原因
テーブルを構成を編集したくて、migrate down
コマンドを使った後に、マイグレーションファイルを編集して再度マイグレーションをしようとしたら起きた