尝试在 sql-server 上迁移时 Flyway 挂起

Posted

技术标签:

【中文标题】尝试在 sql-server 上迁移时 Flyway 挂起【英文标题】:Flyway hangs when trying to migrate on sql-server 【发布时间】:2013-01-08 16:47:23 【问题描述】:

编辑:我可以从 flyway 命令行工具运行相同的配置,但不能从 ant 任务运行。

我有一个可在我的 oracle 数据库上运行的 flyway 配置。我正在我的 SQL-Server 数据库上设置 flyway。当我尝试任何蚂蚁任务时,Flyway 挂起。包括应该用于测试与数据库的连接的信息。

Flyway 在我运行时似乎挂起。执行任何 ant 任务时,详细日志会以“[flyway:info] DDL Transactions Supported: true”停止,如我在本文末尾发布的日志末尾所示。 Flyway 坐在那里,此时没有做任何事情。这让我相信它在获取架构时遇到了问题。因为如果我记得的话,下一个日志行应该是“[flyway:info] Schema: SchemaName”。

这是我使用的版本

飞行路线:2.0.4 SQL-Server:SQL-Server 2008 Express R2 microsoft jdbc: sqljdbc-4.0

数据库初始化日志:

-初始化:

[属性] 正在加载 ..\database\database-build.properties

解析构建文件 jar:file:../apache-ant-1.8.2/lib/ant-contrib-1.0b3.jar!/net/sf/antcontrib/antlib.xml 与 URI = jar:file:.. /apache-ant-1.8.2/lib/ant-contrib-1.0b3.jar!/net/sf/antcontrib/antlib.xml 来自 zip 文件

[属性] 正在加载 ..database\database-placeholders-testclient.properties

-验证:

-回声:

 [echo] Selected database [platform] for DB migration : mssql
 [echo] Selected database [user] for DB migration : sa
 [echo] Selected database [password] for DB migration : flyway
 [echo] Selected database [schemas] for DB migration : dbo
 [echo] Database [jdbc driver class name] for DB migration : com.microsoft.sqlserver.jdbc.SQLServerDriver
 [echo] Database [connection URL] for DB migration : jdbc:sqlserver://localhost;databaseName=TEST_DB;applicationName=Flyway

数据库信息:

使用 URI = jar:file 解析构建文件 jar:file:../apache-ant-1.8.2/lib/flyway-ant-2.0.3.jar!/com/googlecode/flyway/ant/antlib.xml :../apache-ant-1.8.2/lib/flyway-ant-2.0.3.jar!/com/googlecode/flyway/ant/antlib.xml 来自 zip 文件

[flyway:info] 数据库:Microsoft SQL Server 10.50

[flyway:info] 支持的 DDL 事务:true

【问题讨论】:

您能否发布来自 ant run 的调试日志以及您的 Flyway 配置本身?谢谢。 我发现了问题。我的 ant 环境使用 Java build 1.6.0_29 并且在通过命令行使用 flyway 时使用的是 Java build 1.6.0_37 。当我将我的 ant 环境更改为 1.6.0_37 时,它起作用了。我正在使用 Microsoft JDBC 驱动程序 4.0。 【参考方案1】:

我发现了问题。我的 ant 环境使用 Java build 1.6.0_29 并且在通过命令行使用 flyway 时使用的是 Java build 1.6.0_37 。当我将我的 ant 环境更改为 1.6.0_37 时,它起作用了。我正在使用 Microsoft JDBC Driver 4.0。

【讨论】:

以上是关于尝试在 sql-server 上迁移时 Flyway 挂起的主要内容,如果未能解决你的问题,请参考以下文章

组合查询时的 SQL-server 语法错误(传递查询)

Flyway Java 迁移在命令行工具中不起作用

FlywayDB:迁移失败并显示“执行语句错误”,但手动运行迁移 SQL 代码有效

Flyway 3.1 数据库迁移多个模式 - Oracle 11g

访问不允许SQL-Server列中的空值的INSERT或UPDATE(访问运行时错误3162)

每个客户端上的 C# Sql-server