AllIsHackedOff

Just a memo, just a progress

mattes / migrate のメモ

migrateの使い方

toolchain #golang

how to install? ref : https://github.com/mattes/migrate/tree/master/cli

# with homebrew
brew install migrate
# with curl
curl -L https://github.com/mattes/migrate/releases/download/v3.0.1/migrate.darwin-amd64.tar.gz
tar xvz migrate.darwin-amd64.tar.gz
mv migrate.darwin-amd64.tar.gz /usr/local/migrate

naming rule for migration file ref : https://github.com/mattes/migrate/blob/master/MIGRATIONS.md ここに書いてある形式でファイルを作成するらしい。 なんでupとdownを分けるの?についても

-database        Run migrations against this database (driver://url)
# DSNを指定すればいいっぽい?
# http://go-database-sql.org/accessing.html

up

[👾  @masashi.salvador.mitsuzawa] ~/dev/sample/mattes_migrate
% migrate -database 'mysql://root@tcp(127.0.0.1:3306)/hogehoge' -path ./ up
1/u create_hoge (15.876738ms)
[👾  @masashi.salvador.mitsuzawa] ~/dev/sample/mattes_migrate
% migrate -database 'mysql://root@tcp(127.0.0.1:3306)/hogehoge' -path ./ up
no change

down

[👾  @masashi.salvador.mitsuzawa] ~/dev/sample/mattes_migrate
% migrate -database 'mysql://root@tcp(127.0.0.1:3306)/hogehoge' -path ./ down
no change

良さそう。

実行すると schema_migrations テーブルが作成されます。