バージョン 2.1.1 にアップグレードしたところ、奇妙なエラーが表示されます。ステージングおよび運用データベース サーバー上のデータベースに対して実行すると、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 の違いは見つかりません。
違いがある場合、これは「クリーン」と「初期化」の後に発生しています...
どこを見るべきかについての提案はありますか?
EDIT(同じ問題を抱えている将来の人々のために): Axelは、ログインが問題を示しているサーバーにデフォルトのスキーマを持っていないことについて正しかった. 私が走るとき
SELECT SCHEMA_NAME()
私たちの DEV サーバーでは、「dbo」が返されます。しかし、それをACCおよびPRODサーバーで実行すると、「NULL」が返されます。