2016-05-26 7 views
2

flyway-play(3.0.0)でJavaの移行スクリプトを使用することはできますか?flyway-play Javaの移行の実装方法

SQLマイグレーションは正常に機能しますが、サンプルのJava移行スクリプトをapp \ db \ migration \ V1_0_1__PopulateDatabase.javaまたはSQLスクリプトと同じディレクトリに配置すると、有効な移行スクリプトとして認識されません。

誰でもこれを試しましたか?

+0

あなたはそれを動作させることができましたか?私は同じ必要があります – Bennyn

+0

最後に、私はフライウェイプレイをやめ、別のサブプロジェクトでフライウェイコアを使用するだけに戻りました。これはJavaとScalaの移行スクリプトをサポートしていますが、それが私の主な理由ではありませんでした。フライウェイプレイでは、プロジェクトをコンパイルして早期に開発し、データベースからスキーマを生成する必要があります。別のプロジェクトを持つことで、Java/Scalaスクリプトをサポートするというメリットが生まれました。 –

答えて

0

flyway-play READMEによれば、Flywayの移行(スクリプトまたはJavaの移行)は、クラスパスのdb/migration/${dbName}に配置する必要があります。

例えば、私はそうのようなapplication.confで指定defaultと呼ばれるデータベース接続を持っている想像:この場合

db.default { 
    driver=org.postgresql.Driver 
    url="jdbc:postgresql://localhost/database" 
} 

を、私はapp/db/migration/defaultconf/db/migration/defaultとJavaの移行時にSQLの移行を配置する必要があります。

あなたの場合、Java移行のパスにデータベース名は含まれていません。移行をapp/db/migration/V1_0_1__PopulateDatabase.javaにしたのに対して、それはおそらくapp/db/migration/default/V1_0_1__PopulateDatabase.javaのようなはずです。

0

また、あなたのマイグレーションをScalaで書くこともできます。また、flyway-playはそれらをピックアップします(ScalaとJavaの両方のマイグレーションをスキャンします)。フライウェイプレイレポにはこれを行うPlayアプリの例があります:https://github.com/flyway/flyway-play/tree/master/playapp/app/db/migration/java

関連する問題