migrate Docker 镜像下载 - 轩辕镜像
migrate 镜像详细信息和使用指南
migrate 镜像标签列表和版本信息
migrate 镜像拉取命令和加速下载
migrate 镜像使用说明和配置指南
Docker 镜像加速服务 - 轩辕镜像平台
国内开发者首选的 Docker 镜像加速平台
极速拉取 Docker 镜像服务
相关 Docker 镜像推荐
热门 Docker 镜像下载
migrate 镜像详细信息
migrate 镜像标签列表
migrate 镜像使用说明
migrate 镜像拉取命令
Docker 镜像加速服务
轩辕镜像平台优势
镜像下载指南
相关 Docker 镜像推荐
migrate 镜像详细说明
migrate 使用指南
migrate 配置说明
migrate 官方文档
Go Migration Tool 镜像文档
镜像概述
Go Migration Tool 是一个轻量级Docker镜像,封装了基于Go语言开发的数据库迁移工具,旨在简化数据库模式的版本化管理。该工具支持主流关系型数据库(如PostgreSQL、MySQL、SQLite、SQL Server等),通过命令行接口提供迁移脚本的创建、应用、回滚等操作,帮助开发团队在协作和部署过程中保持数据库结构一致性。
核心功能与特性
- 多数据库支持:兼容PostgreSQL、MySQL、SQLite、SQL Server等主流关系型数据库
- 版本化迁移管理:通过有序编号的迁移脚本跟踪数据库结构变更历史
- 迁移脚本生成:提供命令快速创建标准化的迁移脚本文件(包含"up"和"down"操作)
- 灵活迁移操作:支持全量迁移、指定版本迁移、回滚到上一版本或指定版本
- 事务安全保障:迁移操作默认在事务中执行,确保变更的原子性
- 轻量级设计:镜像体积小(基于Alpine),无额外依赖,可快速集成到各类环境
- 迁移记录追踪:自动维护迁移状态表,记录已执行的迁移脚本信息
使用场景与适用范围
- 开发环境:团队成员间快速同步数据库结构变更,减少"本地环境正常,测试环境异常"问题
- 持续集成/部署:作为CI/CD流程的环节,在应用部署前自动执行数据库迁移
- 生产环境:通过版本化迁移降低数据库变更风险,支持灰度发布场景下的结构同步
- 多环境一致性:确保开发、测试、预发、生产环境数据库结构的严格一致
- 数据库重构:支持大型数据库结构重构的分步实施与回滚预案
使用方法与配置说明
基本使用流程
-
准备迁移脚本目录(本地文件系统),目录结构示例:
migrations/ ├── 001_create_users_table.up.sql ├── 001_create_users_table.down.sql ├── 002_add_email_index.up.sql └── 002_add_email_index.down.sql -
通过Docker命令挂载脚本目录并执行迁移操作
Docker Run 命令示例
1. 创建迁移脚本
bashdocker run --rm \ -v $(pwd)/migrations:/app/migrations \ go-migration-tool create add_user_status_column
执行后将在
migrations目录生成两个文件:XXX_add_user_status_column.up.sql和XXX_add_user_status_column.down.sql(XXX为自动生成的序号)
2. 应用所有未执行的迁移
bashdocker run --rm \ -v $(pwd)/migrations:/app/migrations \ -e DB_DRIVER=postgres \ -e DB_URL="host=db-host port=5432 user=dbuser password=dbpass dbname=mydb sslmode=disable" \ go-migration-tool up
3. 回滚最近一次迁移
bashdocker run --rm \ -v $(pwd)/migrations:/app/migrations \ -e DB_DRIVER=mysql \ -e DB_URL="root:password@tcp(mysql-host:3306)/mydb?charset=utf8mb4&parseTime=True&loc=Local" \ go-migration-tool down 1
4. 查看迁移状态
bashdocker run --rm \ -e DB_DRIVER=sqlite3 \ -e DB_URL="./mydb.db" \ go-migration-tool status
Docker Compose 集成示例
yamlversion: '3.8' services: app: image: your-app-image depends_on: - db - migrate db: image: postgres:15-alpine environment: POSTGRES_USER: dbuser POSTGRES_PASSWORD: dbpass POSTGRES_DB: mydb migrate: image: go-migration-tool volumes: - ./migrations:/app/migrations environment: DB_DRIVER: postgres DB_URL: "host=db port=5432 user=dbuser password=dbpass dbname=mydb sslmode=disable" command: up depends_on: - db
配置参数与环境变量
必选环境变量
| 变量名 | 说明 | 示例值 |
|---|---|---|
DB_DRIVER | 数据库驱动类型 | postgres、mysql、sqlite3、sqlserver |
DB_URL | 数据库连接URL(因驱动而异) | PostgreSQL: host=localhost port=5432 user=user dbname=db sslmode=disable |
可选环境变量
| 变量名 | 说明 | 默认值 |
|---|---|---|
MIGRATION_DIR | 迁移脚本存放目录(容器内路径) | /app/migrations |
MIGRATE_TABLE | 迁移状态记录表名 | schema_migrations |
MIGRATE_LOCK_TABLE | 迁移锁表名(用于并发控制) | schema_migrations_lock |
VERBOSE | 是否开启详细日志输出(1=开启) | 0 |
常用命令
| 命令格式 | 说明 |
|---|---|
create <name> | 创建新的迁移脚本对(up/down) |
up | 应用所有未执行的迁移 |
up <n> | 应用最近n个未执行的迁移 |
down | 回滚最近1个迁移 |
down <n> | 回滚最近n个迁移 |
down to <version> | 回滚到指定版本(版本号为脚本前缀数字) |
status | 查看迁移状态(已执行/未执行) |
version | 查看当前数据库的迁移版本 |
注意事项
- 迁移脚本命名规范:建议使用
{序号}_{描述}.up.sql和{序号}_{描述}.down.sql格式,序号需为整数且递增 - 生产环境迁移:执行前建议备份数据库,复杂变更需先在测试环境验证
- 并发控制:多实例同时执行迁移时,工具会通过锁表机制防止冲突
- SQLite注意:SQLite不支持部分DDL语句的事务回滚,使用时需谨慎设计down脚本
用户好评
来自真实用户的反馈,见证轩辕镜像的优质服务
常见问题
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
轩辕镜像下载加速使用手册
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
登录仓库拉取
通过 Docker 登录认证访问私有仓库
Linux
在 Linux 系统配置镜像加速服务
Windows/Mac
在 Docker Desktop 配置镜像加速
Docker Compose
Docker Compose 项目配置加速
K8s Containerd
Kubernetes 集群配置 Containerd
宝塔面板
在宝塔面板一键配置镜像加速
群晖
Synology 群晖 NAS 配置加速
飞牛
飞牛 fnOS 系统配置镜像加速
极空间
极空间 NAS 系统配置加速服务
爱快路由
爱快 iKuai 路由系统配置加速
绿联
绿联 NAS 系统配置镜像加速
威联通
QNAP 威联通 NAS 配置加速
Podman
Podman 容器引擎配置加速
Singularity/Apptainer
HPC 科学计算容器配置加速
其他仓库配置
ghcr、Quay、nvcr 等镜像仓库
专属域名拉取
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429