2015-11-04 16 views
5

Tôi đang sử dụng công cụ dòng lệnh đường bay để xử lý di chuyển db của tôi. Đến nay tất cả di cư là sqlLàm thế nào để xây dựng di chuyển dựa trên đường bay java

Config file (tùy chọn chỉ được sử dụng):

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 

đó làm việc một cách hoàn hảo.

Nhưng hiện tại tôi cần phải thêm một chuyển đổi dựa trên java. Và tôi thực sự bối rối Tôi không thể tìm thấy bất kỳ ví dụ Cách làm nào. Làm thế nào để biên dịch, nơi để đưa java di cư.

tôi đã cố gắng đơn giản di cư hạng từ tài liệu chính thức:

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(); 
     } 
    } 
} 

Nhưng phải làm gì tiếp theo? Đã cố gắng biên soạn:

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 

Sau đó đặt bình đó vào các vị trí khác nhau, không có hiệu lực.

thông tin đường bay - không thấy di chuyển.

Vì vậy, cách xây dựng di chuyển dựa trên java đơn giản nhất. Tôi sẽ không thích sử dụng Maven, hoặc một cái gì đó tương tự. Tập tin jar đơn giản (???) được chọn bởi công cụ dòng lệnh.

Cảm ơn bạn.

Trả lời

1

Đảm bảo tệp .class của bạn nằm trong thư mục db/migration bên trong tệp .jar và tệp .jar của bạn được đặt trong thư mục/jars của bản cài đặt Flyway của bạn.

flyway.locations cũng phải được đặt thành db.migration, hệ thống tệp:/home /........./ sql/migrations

+0

Cảm ơn bạn. Thêm db.migration vào các vị trí, đó là những gì tôi đã bỏ lỡ –

+0

@Vadym Kovalenko cũng phải đối mặt với vấn đề tương tự, bạn có thể giúp tôi được không. Tôi đã thêm db/migration vào flyway.locations và tệp jar được đặt trong các thư mục jar Nhưng vẫn đang đối mặt với cùng một lỗi "Không thể quét tìm kiếm SQL ở vị trí: classpath: db/migration", Vui lòng cho tôi biết nếu bạn cần bất kỳ chi tiết nào khác –

+0

@AdarshHDDev Tệp sql và/hoặc lớp bên trong tệp jar nằm bên trong classpath - db/migration? –

Các vấn đề liên quan