2017-04-07 12 views
0

AntプロジェクトでFlywayを使用してDDLスクリプトを実行しようとしています。私は、Flywayが移行スクリプトを見るようにクラスパスを設定することができました。私はフライウェイを実行すると:私はJavaのソースを持っていない、Flyway Antはzipとして.sqlファイルを開こうとしますが、ZipExceptionで失敗します。

[flyway:migrate] Possible solution: run the Ant javac and copy tasks first so Flyway can find the migrations 

しかし、私のプロジェクトは、Javaアプリケーションではありません。最後の提案は

Unable to obtain resource from (...)/src/ddl/V1__create_tables_logging.sql: java.util.zip.ZipException: error in opening zip file 
[flyway:migrate] Unable to obtain resource from (...)/src/ddl/V1__create_tables_logging.sql: 
[flyway:migrate] java.util.zip.ZipException: error in opening zip file 

があります:タスクを移行し、私はこの例外を取得しますjavacでコンパイルする。 Flywayは移行スクリプトをjarファイルにまとめておく必要がありますか?単純にSQL文でテキストファイルを実行できないのですか?

答えて

0

残念ながら、この問題の原因となる正確な情報を伝えるのは難しくありません。

しかし、あなたはlocationというタスクのプロパティを使用していませんが、私には奇妙に思えますが、classpathです。

<flyway:migrate> 
    <locations> 
     <location path="path/to/migrations"/> 
    </locations> 
    ... 
</flyway:migrate> 
+0

ドキュメントには間違いがありますが、移行はクラスパス上にある必要がありますが、あらかじめjarファイルにコンパイルしておく必要があります。私にとっては、flyway.locationsプロパティを使用し、ドキュメンテーション・ショーの例の1つとしてパスに "filesystem:"を付けることです。 – lukfi

関連する問題