migrate
インストール
https://github.com/golang-migrate/migrate/tree/master/cmd/migrate#installation
brew install golang-migrate
バージョンの確認はここから:
https://github.com/golang-migrate/migrate/releases
VERSION_MIGRATE='v4.4.0'
curl -L "https://github.com/golang-migrate/migrate/releases/download/$VERSION_MIGRATE/migrate.linux-amd64.tar.gz" | tar xvz
# カレントに展開されるので名前を変えてbinに入れる
mv migrate.linux-amd64 migrate
mv migrate /usr/local/bin
使い方(MySQL)
ディレクトリ構成。
migrations
- 001_initialize.sql.down.sql
- 001_initialize.sql.up.sql
- 002_add-user.sql.down.sql
- 002_add-user.sql.up.sql
mysqlコンテナを立ち上げてデータベースを作成する。
docker run -itd --rm \
--name mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=password \
mysql
mysql -h127.0.0.1 -uroot -ppassword -e "create database mydatabase;"
マイグレーションする。
migrate -source file:<migrationファイルのあるディレクトリ> -database "mysql://<user>:<pass>@tcp(<host>:<port>)/<database name>" goto 1
Tips
ユーザ名、パスワードに特殊文字(@など)がある場合
URLエンコードする。
ex): @
-> %40