QAUP_Management/.kiro/specs/flyway-database-migration/tasks.md

73 lines
2.6 KiB
Markdown

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