gpt4 book ai didi

database-migration - Flyway 5.0.7 关于使用 schema_version 表的警告

转载 作者:行者123 更新时间:2023-12-03 21:43:11 25 4
gpt4 key购买 nike

我们使用 Flyway Gradle 插件离线进行迁移(即我们在系统停机时迁移)。我们最近升级到 Flyway 5.0.7,现在我们看到了这个关于迁移的警告:

找不到架构历史记录表 XXXXXXX . flyway_schema_history ,但发现 XXXXXXX . schema_version反而。您看到此消息是因为 Flyway 在版本 5.0.0 中将 flyway.table 的默认值更改为 flyway_schema_history,而您仍然依赖旧的默认值 (schema_version)。在您的配置中设置 flyway.table=schema_version 以解决此问题。 Flyway 6.0.0 中将删除此回退机制。

(我使用 XXXXXXX 来掩盖实际的架构名称)。

所以,看起来我们可以通过设置 flyway.table=schema_version 来避免错误。但是,它还表示此机制将在 Flyway 6.0.0 中删除。

我们是否应该做些什么来使这种兼容向前发展?我们是否必须手动将 schema_version 表重命名为 flyway_schema_history?或者有没有办法让 Flyway 做到这一点?如果没有,当 Flyway 6.0.0 出来时会发生什么?它会自动将数据迁移到适当的表名吗?

最佳答案

flyway.table 的默认值已更改为 schema_versionflyway_schema_history .他们还提供了自动回退到旧默认值的警告,以避免使用旧默认值破坏现有安装。

这意味着从flyway 5,如果你不指定flyway.table配置文件中的属性,然后 flyway 将查找表 flyway_schema_history在 db 中,如果没有找到,它将查找表 schema_version作为后备,如果找到旧表,则会用您现在收到的消息发出警告。从 Flyway 6 开始,这种回退机制将被移除。如果您不提供flyway.table属性,它将查找 flyway_schema_history在 db 中,如果没有找到它不会查找 schema_version即使您有任何表,也会创建一个名为 flyway_schema_history 的新表以维持功能。

在 flyway 6 中,如果您设置 flyway.table=schema_version,您现有的系统将运行良好。 ,您不需要更改数据库中的表名。但是如果你没有设置这个属性,那么你必须改变表名,否则flyway将无法识别现有的schema_version表,将系统视为新的,将创建flyway_schema_history表并从头开始执行脚本。

希望它会有所帮助。

关于database-migration - Flyway 5.0.7 关于使用 schema_version 表的警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49063385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com