migrate

package module
v0.0.0-...-72e6c0e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 28, 2018 License: MIT Imports: 12 Imported by: 2

README

基于gorm、yaml的数据库迁移组件

#说明:

基于gorm、yaml的数据库迁移组件,目前还在不断完善中,目前只支持mysql,后续会按需进行完善。之所以编写这个项目,主要是因为gorm提供的数据迁移 不太符合我的项目需求,我们想要的是可以显示记录数据库修改记录的流水信息。

#示例:

// 初始化数据库链接,执行sql的时候会用到
db, err := gorm.Open("mysql", "root:qsqfrms@tcp(127.0.0.1:3306)/test?charset=utf8&parseTime=True&loc=Local")
// 释放链接
defer db.Close()
// 初始化,如果没有migration_log表,将会创建
migrate.InitSelf(db)
// 创建执行migrate操作的对象,第二个参数显示指定migration文件所在路径
migrateObj := migrate.New(db, "./migration")
// 此句是执行migration文件中up所指定的sql
err = migrateObj.ExecUp()
// 创建migration文件
var fileName string
fmt.Scanln(&fileName)
fmt.Println("将使用如下命名文件:" + migrate.GenerateMigrationFileName(fileName)+"(y|n)")
var yn string
fmt.Scanln(&yn)
fmt.Println("选择的结果为:" + yn)
migrateObj.CreateMigrationFile()

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CreateMigrationFile

func CreateMigrationFile(migrationDirPath string)

* 控制台命令生成migration文件

func GenerateMigrationFile

func GenerateMigrationFile(migrationDirPath, migrationName string, upList, downList []string) error

* 生成migration的文件名,时间+输入的文件名

func GenerateMigrationFileName

func GenerateMigrationFileName(fileName string) string

* 生成migration的文件名,时间+输入的文件名

func New

func New(migrationDirPath string, dbconfigMap map[string]*DbConf) *migrate

func NewMigration

func NewMigration() *migration

Types

type DbConf

type DbConf struct {
	Type string // 数据库类型,如:mysql
	Dsn  string // 数据库连接
}

type MigrateInterface

type MigrateInterface interface {
	Up() error
	Down() error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL