【发布时间】:2013-03-08 21:44:10
【问题描述】:
我刚刚升级到 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)
检查元数据表的时候很明显是找到了schema,但是后来因为某种原因不相信是后面设置的。
架构本身在 flyway.properties 文件中定义 -
flyway.schemas=dbo
我在 dev 和 staging/prod 之间找不到任何会导致此错误的差异。
如果它有所作为,这是在“干净”和“初始化”之后发生的......
有什么推荐的地方吗?
编辑(适用于未来遇到相同问题的人): Axel 是正确的,即登录名在出现问题的服务器上没有默认架构。当我跑步时
SELECT SCHEMA_NAME()
在我们的 DEV 服务器上,我得到了“dbo”;但是当我在我们的 ACC 和 PROD 服务器上运行它时,我只会得到“NULL”。
【问题讨论】:
标签: flyway