golang-migrateを使用したマイグレーションに関して学んだのでメモ
サンプルファイルはこちら
CLI Install
ここを参考にした
brew install golang-migrate
確認
$ migrate
Usage: migrate OPTIONS COMMAND [arg...]
migrate [ -version | -help ]
〜略〜
マイグレーションファイルを配置
1_create_table_sample.up.sql
CREATE TABLE IF NOT EXISTS
sample_db.sample(
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
deleted_at DATETIME DEFAULT NULL,
PRIMARY KEY(id)
)ENGINE=INNODB DEFAULT CHARSET=utf8mb4;
1_create_table_sample.down.sql
DROP TABLE IF EXISTS
sample_db.sample;
マイグレーションを実行してみる
プロジェクトのルートにいることを想定
migrate -source file://db/migrate -database 'mysql://root:root@tcp(127.0.0.1:13306)/sample_db' up
結果
1/u create_table_sample (1.090510742s)
エラーが出なかったらOK
これでマイグレーションファイルに記述した sample
テーブルが作成された!