【问题标题】:flyway/springboot - configure to run on production/test but not on devflyway/springboot - 配置为在生产/测试上运行,但不在开发上运行
【发布时间】:2019-10-14 10:15:02
【问题描述】:

如何通过spring-boot 检查是否已存在数据库架构,如果没有匹配架构则运行。我可以通过spring-boot flyway集成执行以下操作吗?

  1. DEV - 已经有与 sql 脚本匹配的数据库表(例如,V1_Baseline.sql 有表创建和引用数据)所以不应该运行它,但需要创建内部 SCHEMA_VERSION 表并使这个脚本已经运行,以便V2_....接下来会运行sql)
  2. TEST - 包含不应删除的表,但需要运行脚本并创建内部 SCHEMA_VERSION 表。
  3. PROD - 这是空的。所以应该没有问题(我猜想和测试一样)。

来自flywaysite我看到了这个:

flyway clean(无法运行 - 不应丢弃任何内容)

flyway baseline(我认为这是我需要的?检查当前数据库是否匹配,然后将当前脚本作为基线,如果不运行脚本则不运行)

here spring io 和baeldung 也没有具体的内容。

我认为答案就在这里,baseline 并进行了一些检查,但不确定什么有效。

【问题讨论】:

  • 我面前没有笔记本电脑,但我能想到的最简单的方法是通过 spring.flyway.locations=classpath:db/migration,filesystem:/opt/migration -有一个开发配置文件,它使用一个额外的单独位置,其中包含您的内部架构版本脚本。希望对您有所帮助。
  • @RobScully 你的方法最有可能奏效。谢谢

标签: java spring-boot database-migration flyway


【解决方案1】:

Baseline 确实是您需要的,因为它服务于这个确切的目的。

【讨论】:

  • 如何实现条件基线 - ?检查是否需要执行基线,或者我可以在生产和测试中实现基线吗?
猜你喜欢
  • 1970-01-01
  • 2012-06-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-01
  • 1970-01-01
  • 2016-12-12
  • 1970-01-01
  • 2016-10-19
相关资源
最近更新 更多