Skip to content

githubzhaoqian/migratefilelist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

migratefilelist

golang-migrate/migrate 的 source 扩展,解决多版本同时开发并不确定合并顺序的问题,用文件行号代替原本文件的版本号。

golang-migrate/migrate source extension,Solves the problem of simultaneous development of multiple versions without determining the merge order,Replace the version number of the original file with the file line number.

Example

migrate.list

20240729_show.up.sql
20240729_show2.up.sql

不能有空行和相同的行

can't have empty rows and the same rows

run.go

package main

import (
	"database/sql"
	"os"
	"testing"

	"github.com/golang-migrate/migrate/v4"
	_ "github.com/go-sql-driver/mysql"
	"github.com/golang-migrate/migrate/v4/database/mysql"
	_ "github.com/githubzhaoqian/migratefilelist/source/filelist"
)

func main() {
	db, _ := sql.Open("mysql", "root:root@tcp(127.0.0.1:3306)/migrate_test?charset=utf8mb4&parseTime=true&loc=Asia%2FShanghai")
	driver, _ := mysql.WithInstance(db, &mysql.Config{MigrationsTable: "schema_migrations_order"})
	m, _ := migrate.NewWithDatabaseInstance(
		"filelist://migrate.list",
		"mysql",
		driver,
	)
	version, dirty, err := m.Version()
	if err != nil {
		panic(err)
	}
	fmt.Println("current versio: %d, dirty: %t", version, dirty)
	m.Steps(2)
}

About

golang-migrate/migrate source extension

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages