flyway-play(3.0.0)でJavaの移行スクリプトを使用することはできますか?flyway-play Javaの移行の実装方法
SQLマイグレーションは正常に機能しますが、サンプルのJava移行スクリプトをapp \ db \ migration \ V1_0_1__PopulateDatabase.javaまたはSQLスクリプトと同じディレクトリに配置すると、有効な移行スクリプトとして認識されません。
誰でもこれを試しましたか?
flyway-play(3.0.0)でJavaの移行スクリプトを使用することはできますか?flyway-play Javaの移行の実装方法
SQLマイグレーションは正常に機能しますが、サンプルのJava移行スクリプトをapp \ db \ migration \ V1_0_1__PopulateDatabase.javaまたはSQLスクリプトと同じディレクトリに配置すると、有効な移行スクリプトとして認識されません。
誰でもこれを試しましたか?
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/default
でconf/db/migration/default
とJavaの移行時にSQLの移行を配置する必要があります。
あなたの場合、Java移行のパスにデータベース名は含まれていません。移行をapp/db/migration/V1_0_1__PopulateDatabase.java
にしたのに対して、それはおそらくapp/db/migration/default/V1_0_1__PopulateDatabase.java
のようなはずです。
また、あなたのマイグレーションをScalaで書くこともできます。また、flyway-playはそれらをピックアップします(ScalaとJavaの両方のマイグレーションをスキャンします)。フライウェイプレイレポにはこれを行うPlayアプリの例があります:https://github.com/flyway/flyway-play/tree/master/playapp/app/db/migration/java
あなたはそれを動作させることができましたか?私は同じ必要があります – Bennyn
最後に、私はフライウェイプレイをやめ、別のサブプロジェクトでフライウェイコアを使用するだけに戻りました。これはJavaとScalaの移行スクリプトをサポートしていますが、それが私の主な理由ではありませんでした。フライウェイプレイでは、プロジェクトをコンパイルして早期に開発し、データベースからスキーマを生成する必要があります。別のプロジェクトを持つことで、Java/Scalaスクリプトをサポートするというメリットが生まれました。 –