d740cd4f67b08ebc7f8632a6af730035afd4e5c2
- 将db-migrate服务中schema apply命令拆分为多个参数形式 - 新增--dev-url参数,指向相同的数据库连接字符串 - 保持--auto-approve参数以自动批准迁移 - 优化docker-compose.yml配置,提升迁移命令兼容性与可读性
Atlas 数据库迁移(声明式)
文件说明
atlas.hcl- Atlas 配置文件schema.sql- 数据库 schema 定义(声明式).env.local- 本地环境配置.env.example- 生产环境配置示例generate-migration.sh- 从本地数据库导出 schema.sqlmigrate.sh- 生产环境迁移脚本test-local.sh- 本地测试脚本Dockerfile- Docker 镜像配置docker-compose.yml- Docker Compose 配置
使用步骤
1. 导出当前数据库 schema
./generate-migration.sh
2. 本地测试
./test-local.sh
3. 生产环境部署
方式一:Docker Compose(推荐)
# 1. 复制环境变量配置
cp .env.example .env
# 2. 修改 .env 文件,填入生产数据库信息
# DB_USER=root
# DB_PASSWORD=your_password
# DB_HOST=mysql_host
# DB_PORT=3306
# DB_NAME=production_db
# 3. 执行迁移
docker-compose up db-migrate
方式二:Docker Run
docker build -t db-migrate:latest .
docker run --rm \
-e DB_URL="mysql://user:password@host:3306/database" \
db-migrate:latest
注意事项
- 本地测试需修改
.env.local中的MYSQL_CONTAINER为实际容器名称 - 生产环境需配置
.env文件或设置环境变量 - 使用声明式迁移,schema.sql 是数据库最终状态
- Atlas 自动计算并执行差异变更
Description
Languages
HCL
57.6%
Dockerfile
26.7%
Shell
15.7%