【发布时间】: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 的副本,原因如下:
- 不同的 SQL 操作发生错误。
- 有问题的行为似乎已在 Flyway 的早期版本中得到解决,但此操作仍在发生。
【问题讨论】:
-
不确定 FlyAway 或这里的上下文,所以我可能离题了....但是你能不设置事务隔离级别吗? docs.microsoft.com/en-us/sql/t-sql/statements/…
标签: sql-server flyway