
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Go Migration Tool 是一个轻量级Docker镜像,封装了基于Go语言开发的数据库迁移工具,旨在简化数据库模式的版本化管理。该工具支持主流关系型数据库(如PostgreSQL、MySQL、SQLite、SQL Server等),通过命令行接口提供迁移脚本的创建、应用、回滚等操作,帮助开发团队在协作和部署过程中保持数据库结构一致性。
准备迁移脚本目录(本地文件系统),目录结构示例:
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命令挂载脚本目录并执行迁移操作
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
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格式,序号需为整数且递增您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。





来自真实用户的反馈,见证轩辕镜像的优质服务