https://github.com/zhan3333/go-migrate
go-framework gorm migrate module
https://github.com/zhan3333/go-migrate
golang gorm migrate mysql
Last synced: about 1 month ago
JSON representation
go-framework gorm migrate module
- Host: GitHub
- URL: https://github.com/zhan3333/go-migrate
- Owner: zhan3333
- Created: 2020-08-16T10:34:58.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-12-09T06:35:28.000Z (over 5 years ago)
- Last Synced: 2025-11-22T15:04:58.784Z (7 months ago)
- Topics: golang, gorm, migrate, mysql
- Language: Go
- Homepage:
- Size: 16.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# go-migrate
go gorm 数据库版本迁移, 支持 MySQL 数据库
## 使用
定义迁移文件
```go
package testdata
type FooMigrateFile struct {
}
// 迁移文件标识, 唯一性
func (FooMigrateFile) Key() string {
return "FooMigrateFile"
}
// 迁移时执行
func (FooMigrateFile) Up(tx *gorm.DB) error {
tx.Exec("create table test (id int)")
return nil
}
// 回滚时执行
func (FooMigrateFile) Down(tx *gorm.DB) error {
tx.Exec("drop table test")
return nil
}
```
```go
package main
import "github.com/zhan3333/go-migrate"
import "github.com/jinzhu/gorm"
func main() {
var err error
// 初始化数据库连接
migrate.DB, err = gorm.Open("mysql", "")
// 初始化 Migrations table
_ = migrate.InitMigrationTable()
// 注册迁移文件
migrate.Register(&FooMigrateFile{})
// 迁移
migrate.Migrate(1)
// 回滚
migrate.Rollback(1)
}
```