2015-11-04 9 views
5

私は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ファイル(???)。

ありがとうございます。

答えて

1

.classファイルが.jarファイル内のdb/migrationディレクトリにあり、.jarファイルがFlywayインストールの/ jarsディレクトリにあることを確認してください。

flyway.locationsもdb.migration、ファイルシステムに設定する必要があります。/ home /........./ SQL /移行

+0

ありがとうございました。場所にdb.migrationを追加すると、それは私が逃したものです –

+0

@ヴァディム・コヴェレンコも同様の問題に直面していますので、私を助けてください。私はflyway.locationsにdb/migrationを追加しました。jarファイルはjarフォルダの中に置かれていますが、同じエラーが発生しています。 "SQLの移行場所をスキャンできません:classpath:db/migration"他の詳細が必要です –

+0

@AdarshHDDev jarファイル内のsqlおよび/またはクラスファイルはクラスパス内にありますか? –

関連する問題