2013-03-19 48 views
2

我剛剛升級到版本2.1.1,現在我看到一個奇怪的錯誤 - 當我運行它時,遷移命令失敗並出現Flyway異常我們的分段和生產數據庫服務器上的數據庫,但它對我們的開發服務器工作正常。Flyway「migrate」命令找不到當前模式(SQL Server)

這是調試輸出時失敗:

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 

我無法找到,將導致此錯誤開發和分期/生產之間的差異。

如果它的確與衆不同,這是後發生的一個「乾淨」和「初始化」 ......

爲在哪裏看有什麼建議?

編輯(針對未來同樣問題的人): Axel對於在展示問題的服務器上沒有默認架構的登錄是正確的。當我運行

SELECT SCHEMA_NAME() 

在我們的DEV服務器上,我得到「dbo」回來;但是當我在ACC和PROD服務器上運行它時,我只是回到「NULL」。

回答

2

嗯似乎受影響的系統上的用戶的默認架構爲空。

請提出問題,我將在下一個版本中刪除此檢查。

與此同時,如果您爲用戶提供默認架構,則應該可以。

+0

我們對域組使用集成安全性,而SQL Server不允許您爲組設置默認模式(http://social.msdn.microsoft.com/forums/en-US/sqlsecurity /線程/ 7d46a024-7ed5-4c9b-b091-3640dc04f5a1 /)。 – 2013-03-20 15:45:04