Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
go-dbmigrate — Go 库和 CLI,用于管理数据库 schema 迁移,支持 PostgreSQL、MySQL、SQLite 和 Cassandra,包括 up/down 迁移工作流。 | Kitploit
工具/GitHubGitHub/moisei-dev/go-dbmigrate
配置审计DevSecOps实用工具与框架供应链安全数据库安全
GitHubmoisei-dev/go-dbmigrate

go-dbmigrate

Go 库和 CLI,用于管理数据库 schema 迁移,支持 PostgreSQL、MySQL、SQLite 和 Cassandra,包括 up/down 迁移工作流。

查看仓库
4个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

migrate

Build Status GoDoc

一个用 Go 编写的迁移辅助工具。你可以在现有的 Golang 代码中使用它, 或者通过 CLI 运行命令。

root@kitploit:~
GoCode   import github.com/mattes/migrate/migrate
CLI      go get -u github.com/mattes/migrate

特性

  • 超级容易实现 Driver 接口。
  • 在 ^C 时优雅地退出正在运行的迁移。
  • 没有神奇的搜索路径例程,没有硬编码的配置文件。
  • CLI 构建在 migrate 包 之上。

可用的驱动

  • PostgreSQL
  • Cassandra
  • SQLite
  • MySQL (实验性)
  • Bash(计划中)

需要其他驱动?只需实现 Driver 接口 并提交一个 PR。

从终端使用

root@kitploit:~
# 安装
go get github.com/mattes/migrate

# 在路径中创建新的迁移文件
migrate -url driver://url -path ./migrations create migration_file_xyz

# 应用所有可用的迁移
migrate -url driver://url -path ./migrations up

# 回滚所有迁移
migrate -url driver://url -path ./migrations down

# 回滚最近应用的迁移,然后再次运行它。
migrate -url driver://url -path ./migrations redo

# 运行 down 然后运行 up 命令
migrate -url driver://url -path ./migrations reset

# 显示当前的迁移版本
migrate -url driver://url -path ./migrations version

# 应用接下来的 n 个迁移
migrate -url driver://url -path ./migrations migrate +1
migrate -url driver://url -path ./migrations migrate +2
migrate -url driver://url -path ./migrations migrate +n

# 回滚之前的 n 个迁移
migrate -url driver://url -path ./migrations migrate -1
migrate -url driver://url -path ./migrations migrate -2
migrate -url driver://url -path ./migrations migrate -n

# 跳转到特定迁移
migrate -url driver://url -path ./migrations goto 1
migrate -url driver://url -path ./migrations goto 10
migrate -url driver://url -path ./migrations goto v

在 Go 中使用

参见 GoDoc:http://godoc.org/github.com/mattes/migrate/migrate

root@kitploit:~
import "github.com/mattes/migrate/migrate"

// 导入任何所需的驱动,以便它们被注册并可用
import _ "github.com/mattes/migrate/driver/mysql"

// 使用同步版本的迁移函数 ...
allErrors, ok := migrate.UpSync("driver://url", "./path")
if !ok {
  fmt.Println("哦不 ...")
  // 对 allErrors 切片做点什么
}

// 使用异步版本的迁移函数 ...
pipe := migrate.NewPipe()
go migrate.Up(pipe, "driver://url", "./path")
// pipe 基本上只是一个通道
// 编写你自己的通道监听器。参见 main.go 中的 writePipe() 作为示例。

迁移文件

迁移文件的格式如下:

root@kitploit:~
001_initial_plan_to_do_sth.up.sql     # up 迁移指令
001_initial_plan_to_do_sth.down.sql   # down 迁移指令
002_xxx.up.sql
002_xxx.down.sql
...

为什么是两个文件?这样你仍然可以执行类似 psql -f ./db/migrations/001_initial_plan_to_do_sth.up.sql 的操作,并且 不需要任何自定义标记语言来区分 up 和 down 迁移。请注意 文件扩展名取决于驱动。

替代方案

  • https://bitbucket.org/liamstask/goose
  • https://github.com/tanel/dbmigrate
  • https://github.com/BurntSushi/migration
  • https://github.com/DavidHuie/gomigrate
  • https://github.com/rubenv/sql-migrate
下载工具