2

我认为文档(http://flywaydb.org/getstarted/existingDatabaseSetup.html)不够清楚,希望用一个例子来说明描述。我有一个给你:

假设我们有两个不同版本(1 和 2)的生产数据库,其模式版本是隐式的,但通过查询现有表来确定。那么我们将如何实现文档中描述的内容?

在我的示例中,两个版本都附有脚本: 版本 1:创建表 A 版本 2:创建表 B

我创建了与版本 1 和 2 的脚本匹配的 java 迁移文件,但由于缺少 flyway 元数据,我需要查询数据库是否已运行脚本并在这种情况下跳过它们。问题是应用程序崩溃,因为 Flyway 尚未初始化。

我不想从命令行初始化 Flyway,因为我希望在部署时自动完成(嵌入式模式下的 Flyway)。据我所知,这只适用于空数据库。这个问题有简单的解决方案吗?

4

1 回答 1

1

对于单个 PROD 数据库,您可以使用 flyway.initOnMigrate

在您的情况下,您必须通过检查表并使用 flyway.initialVersion=1 或使用 flyway.initialVersion=2 调用 init,然后调用 migrate 来包装 Flyway 并手动重新创建它。

于 2012-12-14T12:37:21.623 回答