私はflywayのコマンドラインツールを使用してdbの移行を処理しています。完璧に動作フライウェイのJavaベースの移行を構築する方法
flyway.url=jdbc:postgresql://db.host
flyway.user=user
flyway.password=password
flyway.table=flyway_migrations
flyway.locations=filesystem:/home/........./sql/migrations
flyway.sqlMigrationPrefix=update
flyway.validateOnMigrate=false
flyway.outOfOrder=true
:ティル は今、すべての移行は、SQL
設定ファイル(のみ使用されるオプション)です。
しかし、今のところ私は1つのJavaベースの移行を追加する必要があります。そして私は本当に困惑しています どのようにtodoの例が見つかりません。どのようにコンパイルするか、javaの移行をどこに置くか。
私は公式ドキュメントからの簡単な移行クラスを試してみた:
package db.migration;
import org.flywaydb.core.api.migration.jdbc.JdbcMigration;
import java.sql.Connection;
import java.sql.PreparedStatement;
/**
* Example of a Java-based migration.
*/
public class V50_121_1__update_notes implements JdbcMigration {
public void migrate(Connection connection) throws Exception {
PreparedStatement statement =
connection.prepareStatement("INSERT INTO test_user (name) VALUES ('Obelix')");
try {
statement.execute();
} finally {
statement.close();
}
}
}
しかし、次に何をすべきか? をコンパイルしようとしました。その後、
javac -cp "./flyway-core-3.2.1.jar" V50_121_1__update_notes.java
jar cf V50_121_1__update_dataNode_notes.jar V50_121_1__update_dataNode_notes.class
そして別の場所にその瓶を入れて、何の効果もありません。
フライウェイ情報 - マイグレーションは表示されません。
したがって、最も単純なJavaベースの移行を構築する方法。私はMavenなどを使用しないことを好みます。フライウェイコマンドラインツールでピックアップされた単なるjarファイル(???)。
ありがとうございます。
ありがとうございました。場所にdb.migrationを追加すると、それは私が逃したものです –
@ヴァディム・コヴェレンコも同様の問題に直面していますので、私を助けてください。私はflyway.locationsにdb/migrationを追加しました。jarファイルはjarフォルダの中に置かれていますが、同じエラーが発生しています。 "SQLの移行場所をスキャンできません:classpath:db/migration"他の詳細が必要です –
@AdarshHDDev jarファイル内のsqlおよび/またはクラスファイルはクラスパス内にありますか? –