golang-migrate

migrate

golang-migrate

用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团队

快速上手

  1. 安装CLI:go install -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@latest
  2. 创建迁移文件:migrate create -ext sql -dir db/migrations -seq init
  3. 执行迁移:migrate -database YOUR_DATABASE_URL -path db/migrations up
  4. 回滚迁移:migrate -database YOUR_DATABASE_URL -path db/migrations down

核心优势

  • 广泛的数据库支持:覆盖主流关系型和NoSQL数据库
  • 灵活的部署方式:可作为独立CLI或Go库使用
  • 健壮的设计:数据库驱动保持轻量,逻辑由核心确保
  • 活跃的社区:持续维护和更新

系统要求

  • 操作系统:跨平台(Windows、macOS、Linux)
  • 支持架构:x86_64、arm64
  • 额外依赖:Go(如作为库使用)

注意事项

  • 项目从 mattes/migrate 分支而来
  • 部分数据库驱动仍在开发中(如SQLite3、CrateDB)

历史版本

排序