SuperAPI AI 工具集

413-frameworks-quarkus-db-migrations-flyway

部署与运维

查看项目

更新于 10-15 09:16

技能介绍

用途

该技能面向 Quarkus 应用中的数据库迁移工作,用于添加或审查基于 Flyway 的迁移脚本与配置。它提供一套参考规则和正反示例,帮助在 Quarkus 项目中以一致、安全的方式管理数据库 schema 变更。

主要能力

  • 使用 quarkus-flyway 扩展配合 quarkus-jdbc-* 驱动。
  • 在 src/main/resources/db/migration 下组织版本化 SQL 迁移脚本。
  • 配置 quarkus.flyway.migrate-at-start、locations、baseline 等选项。
  • 处理多数据源场景(在适用时)。
  • 采用 Parallel Change(expand、migrate、contract)作为破坏性或数据敏感 schema 变更的安全工作流。
  • 与 @411-frameworks-quarkus-jdbc 和 @412-frameworks-quarkus-panache 协同。

使用方式

技能的工作流包括:

  1. 阅读参考文档并评估项目上下文:阅读 references/413-frameworks-quarkus-db-migrations-flyway.md、references/413-frameworks-quarkus-db-migrations-flyway-antipatterns.md 和 references/413-frameworks-quarkus-db-migrations-flyway-parallel-change.md,然后检查当前项目设置。
  2. 收集范围并确定目标改进:识别请求的结果、约束以及最小安全变更集。
  3. 应用与框架一致的变更:按照参考模式和项目约定实现或重构配置/代码,对破坏性或数据敏感 schema 变更默认使用 Parallel Change。
  4. 运行验证并报告结果:执行适当的构建/测试,总结变更内容、验证结果和后续操作。

约束与安全要求:

  • 在应用 Flyway 或 SQL 变更前,确保项目可编译。
  • 强制要求:在应用任何变更前运行 ./mvnw compile 或 mvn compile。
  • 安全:如果编译失败,立即停止。
  • 验证:在应用改进后运行 ./mvnw clean verify 或 mvn clean verify。
  • 应用前:阅读参考以了解详细规则和正反模式。
  • 破坏性变更审查:在推荐或应用迁移前,评估其是否会破坏已部署的应用版本、依赖服务、报表、作业或生产数据解释;如果是,则要求明确的人工审查后再继续。
  • 边界情况:如果用户目标不明确,停止并在编辑文件或运行项目级命令前提出澄清问题。
  • 边界情况:如果缺少所需上下文、文件、凭据或工具,明确报告阻塞并询问是否继续设置或提供回退指导。
  • 边界情况:如果请求的变更与项目约束或安全边界冲突,解释冲突并请用户确认首选权衡。

适用场景

  • 在 Quarkus 项目中添加或审查 Flyway 迁移。
  • 配置 quarkus-flyway 或 db/migration 布局。
  • 为 Quarkus 添加版本化 Flyway SQL 迁移。
  • 审查 Quarkus 数据库迁移顺序。
  • 在 Quarkus 中配置 Flyway clean、migrate 或 baseline。

限制

该技能基于参考规则和正反示例提供建议,具体实现需结合项目实际。破坏性变更必须经过人工审查。若缺少必要上下文、文件、凭据或工具,需明确报告阻塞。用户目标不明确时需先澄清。