如何将多个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中的主要内容,如果未能解决你的问题,请参考以下文章

如何让多个不同的SQL语句一起执行?

如何将具有 70 个字段的 java 对象发送到具有相同字段数的对象的 pl sql 过程

如何将多个访问数据库导入 SQL Server

如何在 Oracle SQL Developer 中多次执行相同的存储过程?

使用 SSIS 脚本任务将数据从多个 SQL 表导出到不同的平面文件

在一个表中创建具有多个 ALTER 和 UPDATES 的整合 SQL 脚本时出现问题