Files
kami-db-migrate/README.md
danial 0287e64200 feat(migration): 改用版本化迁移管理数据库变更
- 将声明式 schema.sql 改为期望状态定义
- 新增 migrations/ 目录存放版本化迁移文件
- 更新 atlas.hcl 配置支持版本化迁移路径
- 修改生成迁移脚本 generate-migration.sh 实现差异迁移文件生成
- Dockerfile 支持拷贝 migrations 目录
- docker-compose.yml 调整命令,使用迁移文件夹路径
- 优化 README 文档描述版本化迁移及使用步骤
- 移除无用测试数据库docker-compose.test.yml文件
- 添加初始的 baseline 迁移 SQL 文件,包含完整表结构创建语句
2025-12-14 14:43:23 +08:00

1.5 KiB
Raw Blame History

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

# 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 migrate apply --url $DB_URL --dir file://migrations

注意事项

  1. 使用版本化迁移,每次修改 schema.sql 后需运行 generate-migration.sh 生成迁移文件
  2. 迁移文件会按顺序执行,确保数据库状态可追溯
  3. 生产环境需配置 .env 文件或设置环境变量