golang之迁移文件管理:
下载:https://github.com/golang-migrate/migrate //主要包括cli[单独下载releases下的文件] 模式 和 引入包[go get github.com/golang-migrate/migrate/v4] 模式
安装:https://github.com/golang-migrate/migrate/releases
执行迁移[sslmode=enable 这个参数不要随便加,不然会报错]:
duo@k8s:/usr/local/go-project/src/duoxiaozhan-api$ migrate create -ext sql -dir ./migrations -seq create_users_table
duo@k8s:/usr/local/go-project/src/duoxiaozhan-api$ migrate create -ext sql -dir ./migrations -seq add_role_id_users
duo@k8s:/usr/local/go-project/src/duoxiaozhan-api$ migrate -database 'mysql://root:123456@tcp(127.0.0.1:3306)/duo?charset=utf8mb4&parseTime=true&loc=Local' -path ./migrations up [N]
1/u create_users_table (15.020662ms)
duo@k8s:/usr/local/go-project/src/duoxiaozhan-api$ migrate -database 'mysql://root:123456@tcp(127.0.0.1:3306)/duo?charset=utf8mb4&parseTime=true&loc=Local' -path ./migrations down [N]
2/d add_role_id_to_users (32.834926ms)
N: 是指定到的版本号,不指定就是全部
duo@k8s:/usr/local$ sudo dpkg -i ./migrate.linux-amd64.deb
duo@k8s:/usr/local$ migrate --help
Usage: migrate OPTIONS COMMAND [arg...]
migrate [ -version | -help ]
Options:
-source Location of the migrations (driver://url)
-path Shorthand for -source=file://path
-database Run migrations against this database (driver://url)
-prefetch N Number of migrations to load in advance before executing (default 10)
-lock-timeout N Allow N seconds to acquire database lock (default 15)
-verbose Print verbose logging
-version Print version
-help Print usage
...
...
