【问题标题】:How to disable transactions for individual migrations in Flyway on SQL Server如何在 SQL Server 上的 Flyway 中禁用单个迁移的事务
【发布时间】:2020-03-18 17:09:12
【问题描述】:

我的 Flyway 迁移在 Flyway Community Edition 6.0.8 中失败并出现以下错误:

The procedure 'sys.sp_grantdbaccess' cannot be executed within a transaction.

我原来的迁移脚本是:

EXEC sp_grantdbaccess 'foo', 'bar'

我尝试将它作为动态 SQL 运行,但遇到了同样的问题:

exec('EXEC sp_grantdbaccess N''foo'', N''bar''')

我还尝试了 flyway migrate 命令行上的 -mixed=true 选项以允许运行事务性和非事务性迁移,但我收到了同样的错误。

可以在每次迁移的基础上禁用事务吗?甚至是整个“迁移”操作?如果这些都不是选项,那么迁移脚本本身是否有办法在不遇到事务限制的情况下影响相关更改?

这不是 Is there any way to disable flyway SQL migration from the transaction 的副本,原因如下:

  1. 不同的 SQL 操作发生错误。
  2. 有问题的行为似乎已在 Flyway 的早期版本中得到解决,但此操作仍在发生。

【问题讨论】:

标签: sql-server flyway


【解决方案1】:

本周发布的 Flyway 6.1 中添加了将单个脚本配置为(不)在事务中运行的功能:https://flywaydb.org/documentation/migrations#manual-override

【讨论】:

    猜你喜欢
    • 2017-08-29
    • 2019-02-19
    • 2017-03-03
    • 2012-07-30
    • 2019-07-19
    • 2021-06-07
    • 2013-01-08
    • 2013-12-23
    • 2022-01-01
    相关资源
    最近更新 更多