6dbe9fe6b96ef2a25770a1db81e43922d10e468a
- 添加本地环境配置,包含Schema和连接信息 - 在本地和生产环境配置中新增diff块支持 - 重新设计merchant_hidden_config表结构及命名调整 - 新增并重命名多个核心业务表,如order_profit_info改为merchant_hidden_record - 调整camel_oil_account表与相关索引定义 - 重构account_history_info和card_apple_history_info相关表结构 - 统一并整理代付相关表payfor_info和merchant_load_info字段及索引 - 丰富并优化商户、代理、账户等多张业务表字段及索引配置 - 增加alembic_version表用于版本控制 - 对多张表字符集及排序规则进行了统一和优化调整 - 优化索引设置以提升查询性能和数据一致性保障
Atlas 数据库迁移(版本化)
文件说明
atlas.hcl- Atlas 配置文件schema.sql- 数据库 schema 定义(期望状态)migrations/- 版本化迁移文件目录.env.local- 本地环境配置.env.example- 生产环境配置示例generate-migration.sh- 生成新的迁移文件Dockerfile- Docker 镜像配置docker-compose.yml- Docker Compose 配置
使用步骤
1. 修改 schema.sql 定义期望状态
直接编辑 schema.sql 文件,定义期望的数据库结构。
2. 生成迁移文件
./generate-migration.sh
此命令会对比当前数据库和 schema.sql,生成新的迁移文件到 migrations/ 目录。
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
# BASELINE_VERSION=20251213191759 # 首次部署时取消注释
# 3. 执行迁移
docker-compose up db-migrate
后续部署(数据库已有迁移历史):
# .env 文件中注释掉或删除 BASELINE_VERSION
# 然后执行:
docker-compose up db-migrate
方式二:Docker Run
atlas schema inspect --env local --format '{{ sql . }}' > schema.sql && echo "已更新 schema.sql
docker build -t db-migrate:latest .
docker run --rm \
-e DB_URL="mysql://user:password@host:3306/database" \
db-migrate:latest migrate apply --url $DB_URL --dir file://migrations
注意事项
- 使用版本化迁移,每次修改 schema.sql 后需运行
generate-migration.sh生成迁移文件 - 迁移文件会按顺序执行,确保数据库状态可追溯
- 生产环境需配置
.env文件或设置环境变量 - **首次部署到已有数据库:**必须设置
BASELINE_VERSION=20251213191759来标记现有数据库状态 - **后续部署:**删除或注释
BASELINE_VERSION环境变量
Description
Languages
HCL
57.6%
Dockerfile
26.7%
Shell
15.7%