SQL Server 2012 上的 Flyway 和清洁序列
Posted
技术标签:
【中文标题】SQL Server 2012 上的 Flyway 和清洁序列【英文标题】:Flyway and cleaning sequences on SQL Server 2012 【发布时间】:2014-09-14 07:29:20 【问题描述】:我在 SQL Server 2012 中使用 Flyway through Maven 插件 (v3.0)。
执行期间
mvn clean compile flyway:clean
序列未清理和执行时
mvn clean compile flyway:clean flyway:migrate
我收到序列已经存在的错误!
这是一个错误,还是有意以这种方式实现它?
执行时
SELECT *
FROM sys.objects
WHERE type = 'SO';
我可以看到我的序列,尽管执行了 flyway:clean。
【问题讨论】:
【参考方案1】:请提交问题,说明如何重现的确切步骤,包括演示问题的小型迁移文件。
【讨论】:
已修复,详情请参阅:github.com/flyway/flyway/issues/806。将尝试使用 3.1。【参考方案2】:好的,我已经找到了解决方法,直到此问题仍未解决。
在 SQL 级别,我正在检查一个序列是否存在。如果为 true,则删除该序列,然后重新创建。
IF EXISTS(SELECT * FROM sys.sequences WHERE name=N'SEQ_USER_ID')
DROP SEQUENCE TESTDB.SEQ_USER_ID;
CREATE SEQUENCE TESTDB.SEQ_USER_ID START WITH 1 INCREMENT BY 1 CACHE 20;
它在 Flyway 中正确执行,并且在我的情况下有效。
【讨论】:
以上是关于SQL Server 2012 上的 Flyway 和清洁序列的主要内容,如果未能解决你的问题,请参考以下文章
Flyway:如何在 flyway 创建 flyway_schema_history 之前创建 SQL Server 数据库
我可以将 Flyway 与 SQL Server 加密一起使用吗?