Flyway“migrate”命令找不到当前架构(SQL Server)

时间:2013-03-19 23:46:50

标签: flyway

我刚刚升级到2.1.1版本,现在我看到一个奇怪的错误 - 当我在我们的登台和生产数据库服务器上对数据库运行时,migrate命令失败并出现Flyway异常,但它可以正常运行我们的开发服务器。

这是失败时的调试输出:

DEBUG: Adding location to classpath: C:\workspace\flyway\bin\..\jars\jtds-1.2.7.jar
DEBUG: Database: Microsoft SQL Server 10.0
DEBUG: DDL Transactions Supported: true
DEBUG: Schema: dbo
DEBUG: Schema [dbo] already exists. Skipping schema creation.
DEBUG: No upgrade to the Flyway 2.0 format necessary for metadata table [dbo].[schema_version]
DEBUG: No metadata table upgrade to the Flyway 2.0.2 format necessary
DEBUG: No metadata table upgrade to the Flyway 2.1 format necessary
ERROR: Unexpected error
com.googlecode.flyway.core.api.FlywayException: Current schema not set for connection! Check your database configuration!
        at com.googlecode.flyway.core.dbsupport.DbSupport.getCurrentSchema(DbSupport.java:79)
        at com.googlecode.flyway.core.Flyway$1.execute(Flyway.java:855)
        at com.googlecode.flyway.core.Flyway$1.execute(Flyway.java:815)
        at com.googlecode.flyway.core.Flyway.execute(Flyway.java:1177)
        at com.googlecode.flyway.core.Flyway.migrate(Flyway.java:815)
        at com.googlecode.flyway.commandline.Main.executeOperation(Main.java:118)
        at com.googlecode.flyway.commandline.Main.main(Main.java:86)

在检查元数据表时,它清楚地找到了架构,但由于某种原因,它不相信它会在以后设置。

架构本身在flyway.properties文件中定义 -

flyway.schemas=dbo

我找不到导致此错误的dev和staging / prod之间的任何差异。

如果它有所不同,这是在“干净”和“初始化”之后发生的......

有关何处查看的建议?

编辑(对于具有相同问题的未来人员): Axel对于在显示问题的服务器上没有默认架构的登录是正确的。我跑的时候

SELECT SCHEMA_NAME()
在我们的DEV服务器上,我得到了“dbo”;但是当我在我们的ACC和PROD服务器上运行它时,我只是回到了“NULL”。

1 个答案:

答案 0 :(得分:2)

嗯,似乎受影响系统上的用户的默认架构为null。

请提出问题,我会在下一个版本中删除此支票。

与此同时,如果您为用户提供默认架构,则应该没问题。