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

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