1e7b02d5a1566fdb1279f65fa13c78ffbb231510
All checks were successful
continuous-integration/drone/push Build is passing
- 修改服务器host地址和端口为38.55.194.49:3422 - 更新Docker登录地址从git.oceanpay.cc到git.domainpay.top - 修改Docker构建和推送镜像的仓库路径 - 同步更新Docker logout命令中的仓库地址
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%