【发布时间】:2019-10-14 10:15:02
【问题描述】:
如何通过spring-boot 检查是否已存在数据库架构,如果没有匹配架构则运行。我可以通过spring-boot flyway集成执行以下操作吗?
- DEV - 已经有与 sql 脚本匹配的数据库表(例如,
V1_Baseline.sql有表创建和引用数据)所以不应该运行它,但需要创建内部 SCHEMA_VERSION 表并使这个脚本已经运行,以便V2_....接下来会运行sql) - TEST - 包含不应删除的表,但需要运行脚本并创建内部 SCHEMA_VERSION 表。
- 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