- 添加数据库 schema 声明文件 schema.sql,包含多张表的完整结构定义 - 新增 Dockerfile,配置基于 arigaio/atlas 的迁移镜像 - 添加 migrate.sh 脚本执行生产环境迁移操作 - 创建 generate-migration.sh 脚本导出本地数据库 schema - 新建 test-local.sh 脚本用于本地迁移兼容性测试 - 配置 atlas.hcl 支持本地(local)和生产(prod)两个环境 - 添加 docker-compose.yml 支持基于环境变量的容器化迁移服务 - 新增 .drone.yml 配置自动构建并推送迁移镜像流水线 - 提供 .env.example 和 .env.local 模板方便环境变量管理 - 更新 .gitignore 和 .dockerignore 优化开发与构建忽略规则 - 编写 README.md,详细说明项目架构、使用步骤及注意事项 - 编写 CLAUDE.md,提供代码库整体说明及迁移工作流程指导
45 lines
1.2 KiB
Bash
Executable File
45 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
# 加载配置
|
|
if [ -f .env.local ]; then
|
|
export $(cat .env.local | grep -v '^#' | xargs)
|
|
fi
|
|
|
|
echo "========================================="
|
|
echo "本地测试数据库迁移"
|
|
echo "使用容器: $MYSQL_CONTAINER"
|
|
echo "========================================="
|
|
|
|
# 1. 创建 atlas_dev 数据库
|
|
echo ""
|
|
echo "步骤 1: 创建 atlas_dev 数据库"
|
|
docker exec $MYSQL_CONTAINER mysql -uroot -pmysql123 -e "CREATE DATABASE IF NOT EXISTS atlas_dev;"
|
|
|
|
# 2. 生成 schema.sql
|
|
echo ""
|
|
echo "步骤 2: 生成 schema.sql"
|
|
./generate-migration.sh
|
|
|
|
# 3. 创建测试数据库
|
|
echo ""
|
|
echo "步骤 3: 创建测试数据库"
|
|
docker exec $MYSQL_CONTAINER mysql -uroot -pmysql123 -e "DROP DATABASE IF EXISTS kami_test; CREATE DATABASE kami_test;"
|
|
|
|
# 4. 测试迁移
|
|
echo ""
|
|
echo "步骤 4: 测试迁移到 kami_test"
|
|
export DB_URL="mysql://root:mysql123@localhost:3306/kami_test"
|
|
atlas schema apply --env prod --auto-approve
|
|
|
|
# 5. 验证结果
|
|
echo ""
|
|
echo "步骤 5: 验证迁移结果"
|
|
docker exec $MYSQL_CONTAINER mysql -uroot -pmysql123 kami_test -e "SHOW TABLES;"
|
|
|
|
echo ""
|
|
echo "========================================="
|
|
echo "测试完成!"
|
|
echo "========================================="
|