2.6 KiB
2.6 KiB
Implementation Plan
-
1. 添加Flyway依赖和基础配置
- 在根pom.xml中添加Flyway相关依赖
- 在qaup-admin模块的application.yml中配置Flyway参数
- 创建db/migration目录结构
- Requirements: 1.1, 1.2
-
2. 从生产数据库导出基线结构
- 使用pg_dump导出生产数据库的完整表结构
- 导出基础配置数据和字典数据
- 清理导出脚本中的环境特定信息
- 验证导出脚本的完整性和可执行性
- Requirements: 2.1, 2.2, 2.3
-
3. 生成Flyway基线迁移脚本
- 将导出的数据库结构整理为V1.0.0__Initial_baseline.sql
- 添加必要的PostGIS扩展和空间索引
- 包含系统必需的初始数据和配置
- 验证基线脚本在全新数据库中的执行效果
- Requirements: 2.1, 2.2, 2.3, 2.4
-
4. 创建增量迁移脚本
- 将现有的增量SQL文件转换为Flyway格式
- 创建V1.0.1__Add_traffic_light_tables.sql等增量脚本
- 确保所有脚本遵循Flyway命名规范
- 添加必要的数据验证和错误处理
- Requirements: 2.4, 4.1, 4.2
-
5. 集成Flyway到Spring Boot应用
- 配置Flyway在应用启动时自动执行
- 实现FlywayMigrationHandler处理迁移事件
- 添加迁移状态监控和日志记录
- 创建迁移失败的告警机制
- Requirements: 1.1, 1.3, 5.1, 5.2
-
6. 修改Docker部署配置
- 更新docker-compose.yml支持Flyway迁移
- 修改应用启动脚本等待数据库就绪
- 移除现有的init.sql初始化方式
- 确保容器启动时自动执行数据库迁移
- Requirements: 3.1, 3.4
-
7. 更新部署脚本和流程
- 修改deploy.sh脚本集成Flyway迁移检查
- 更新BUILD-GUIDE.md文档说明新的部署流程
- 创建数据库迁移状态检查工具
- 实现迁移失败时的回滚机制
- Requirements: 3.1, 3.2, 3.3
-
8. 简单测试验证迁移功能
- 在本地环境测试基线迁移脚本执行
- 验证迁移后数据库结构的完整性
- 测试应用启动时的自动迁移流程
- Requirements: 1.4, 2.3, 3.3
-
9. 创建开发规范和文档
- 编写数据库迁移开发规范文档
- 创建迁移脚本模板和示例
- 制定版本号管理流程
- Requirements: 4.1, 4.2, 4.3, 4.4
-
10. 配置生产环境安全措施
- 配置生产环境禁用Flyway clean操作
- 添加迁移前的数据库备份机制
- 设置迁移失败时的告警通知
- Requirements: 5.4, 3.3
-
11. 最终验证和部署
- 在测试环境验证完整的迁移流程
- 更新部署文档和操作手册
- 进行生产环境迁移演练
- Requirements: 1.3, 1.4, 3.1, 3.2