如何将多个sql脚本执行到具有相同版本的flyway中
Posted
技术标签:
【中文标题】如何将多个sql脚本执行到具有相同版本的flyway中【英文标题】:how to execute multiple sql script into flyway with same version 【发布时间】:2020-07-01 09:58:53 【问题描述】:我想使用相同版本的flyway执行多个SQL文件。
解决方案 1
我尝试将多个 SQL 脚本绑定到单个 SQL 脚本中并执行它。但是现在几天后会出现新的脚本,我会在创建 SQL 文件之前合并。那个显示错误。我的要求是我只执行一个 SQL 文件并且我的数据库要更新。
有什么办法吗?
解决方案 2
我尝试使用带有时间戳的版本名称,但这不满足您的要求。我只想要一个 SQL 文件,当我迁移时它会成功迁移 SQL 文件,当我再次迁移新脚本时它会成功迁移它,但所有这些过程都在单个脚本中完成。
有什么办法吗?
我正在使用 FlyWay 版本 4.2.0。
【问题讨论】:
【参考方案1】:Flyway 使用历史记录表 (flyway_schema_history) 来跟踪已应用的迁移。不仅如此,该表还有一个 checksum 列,它是根据迁移的内容完成的,这意味着如果您更改它,校验和将失败并且您的应用程序也会启动。
也许给出您选择背后的原因有助于您了解如何帮助您。
【讨论】:
我有 V1__version1.sql 脚本,现在我迁移它然后它成功完全迁移现在我有我最后添加到 V1__version1.sql 文件中的新脚本现在我迁移它然后显示错误,因为第一个迁移对象已经创造它。我如何执行 V1__version1.sql 脚本? 有什么办法吗??无需创建新版本文件!!?? 为了做你想做的事,Flyway 有一个可重复迁移的概念。您可以查看他们的documentation 并了解更多信息。以上是关于如何将多个sql脚本执行到具有相同版本的flyway中的主要内容,如果未能解决你的问题,请参考以下文章
如何将具有 70 个字段的 java 对象发送到具有相同字段数的对象的 pl sql 过程
如何在 Oracle SQL Developer 中多次执行相同的存储过程?