【问题标题】:Is there any way to disable flyway SQL migration from the transaction有没有办法从事务中禁用flyway SQL迁移
【发布时间】:2019-02-19 07:11:46
【问题描述】:

我正在尝试执行 Flyway 迁移以删除全文索引,但它无法在迁移中运行:

DROP FULLTEXT INDEX ON BusinessEntity

它会抛出一个错误:

消息:DROP FULLTEXT INDEX 语句不能在用户事务中使用。

据我了解documentation

Flyway 在单独的事务中运行每个迁移。

我很感兴趣,有什么方法可以在迁移之外运行 SQL 代码或以某种方式将其关闭?

【问题讨论】:

    标签: sql-server flyway


    【解决方案1】:

    这个问题已经在 Flyway 主分支 been fixed,但尚未发布。

    下一个版本,5.2.0,应该会解决它。

    与此同时,您可以build it from source自己。

    2019-01-03 更新

    5.2.0 版本不久前发布。

    我创建了一个 repository 来使用 Flyway 5.1.4 复制错误 - 或者至少它在 CREATE FULLTEXT INDEX 上失败,因为同样的潜在问题。正如预期的那样,将版本更改为 5.2.0 即可解决问题。

    【讨论】:

    • 是否有一种解决方法,此时我如何在没有自定义 jar 的情况下在 prod env 上使用它?
    • 我不知道。在documentation 中没有提到跳过事务的方法。我快速浏览了code,但我看不到在不更改代码的情况下覆盖它的方法。对不起。
    • 嘿,即使升级到 5.2.0(它与 springboot 应用程序一起运行),我仍然面临这个问题 - 你还有其他建议吗?
    • @user1002065 不确定。它是否因相同的异常而失败?我已经用 5.1.4 复制了错误,然后切换到 5.2.0 修复了它,正如预期的那样。 Spring Boot 是否肯定使用了正确版本的 Flyway? Flyway 是否因为之前的迁移失败而抛出异常..?
    • 在 6.0.8 Community for SQL Server 调用 sys.sp_grantdbaccess 时会出现此问题。
    猜你喜欢
    • 2023-02-04
    • 2012-02-01
    • 2012-07-30
    • 2019-07-19
    • 2020-03-18
    • 1970-01-01
    • 2022-01-01
    • 2021-10-19
    • 1970-01-01
    相关资源
    最近更新 更多