用Go编写的数据库迁移工具,支持CLI和库导入两种使用方式,适配多种数据库。
- v4.20.1
- 发布于
- 2026年9月9日
- 18,953
- 星标
- 6,317,167
- 下载
- 同步于
- 15 天前
最新版本
v4.20.12026年9月9日 14:21下载慢?可在上方随时切换镜像源
项目说明
项目概述
golang-migrate/migrate 是一个用Go编写的数据库迁移工具。它可作为CLI工具使用,也可作为库导入到Go项目中。该工具从多种源读取迁移文件,并按正确顺序应用到数据库。
主要功能
- 支持多种数据库:PostgreSQL、MySQL、SQLite、MongoDB、Cassandra、ClickHouse等
- 多种迁移源:支持从文件系统、GitHub、S3、Google Cloud Storage等读取迁移文件
- CLI和库两种使用方式
- 确保迁移逻辑正确,驱动轻量且不假设用户输入
- 支持数据库URL连接字符串
适用人群
- 需要管理数据库Schema变更的Go开发者
- 运维和数据库管理员
- 需要自动化数据库迁移的DevOps团队
快速上手
- 安装CLI:
go install -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@latest - 创建迁移文件:
migrate create -ext sql -dir db/migrations -seq init - 执行迁移:
migrate -database YOUR_DATABASE_URL -path db/migrations up - 回滚迁移:
migrate -database YOUR_DATABASE_URL -path db/migrations down
核心优势
- 广泛的数据库支持:覆盖主流关系型和NoSQL数据库
- 灵活的部署方式:可作为独立CLI或Go库使用
- 健壮的设计:数据库驱动保持轻量,逻辑由核心确保
- 活跃的社区:持续维护和更新
系统要求
- 操作系统:跨平台(Windows、macOS、Linux)
- 支持架构:x86_64、arm64
- 额外依赖:Go(如作为库使用)
注意事项
- 项目从
mattes/migrate分支而来 - 部分数据库驱动仍在开发中(如SQLite3、CrateDB)
历史版本
排序