如何构建基于flyway java的迁移
我正在使用flyway命令行工具来处理我的db迁移。 到目前为止,所有迁移都是sql 配置文件(仅用于选项): 那很好用 但现在我需要添加一个基于java的迁移。我真的很困惑 我找不到任何如何做的例子。如何编译,将java迁移放在何处 我尝试过官方文档中的简单迁移类:如何构建基于flyway java的迁移,java,flyway,Java,Flyway,我正在使用flyway命令行工具来处理我的db迁移。 到目前为止,所有迁移都是sql 配置文件(仅用于选项): 那很好用 但现在我需要添加一个基于java的迁移。我真的很困惑 我找不到任何如何做的例子。如何编译,将java迁移放在何处 我尝试过官方文档中的简单迁移类: package db.migration; import org.flywaydb.core.api.migration.jdbc.JdbcMigration; import java.sql.Connection; impor
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
然后把罐子放在不同的地方,没有效果
flyway信息-看不到迁移
因此,如何构建最简单的基于java的迁移。我不想使用Maven或类似的东西。只需简单的jar文件(???),它由flyway命令行工具获取
谢谢。确保您的
.class
文件位于.jar
文件中的db/migration
目录中,并且确保您的.jar
文件位于您的Flyway安装的/jars
目录中
flyway.位置也应设置为:
db.migration,filesystem:/home/........./sql/migrations
将.java
文件指定为.java
como
类路径:包_示例。迁移
flyway.url=jdbc:postgresql://db.host
flyway.user=user
flyway.password=password
flyway.table=flyway_migrations
flyway.locations=filesystem:/home/...../sql/migrations,classpath:pack_example.migrations
flyway.sqlMigrationPrefix=update
flyway.validateOnMigrate=false
flyway.outOfOrder=true
有关文档,请参阅链接
谢谢。将db.migration添加到位置,这就是我想要的missed@Vadym科瓦连科我也面临着类似的问题,你能帮我吗。我已经将db/migration添加到flyway.locations中,jar文件放在jar文件夹中,但仍然面临相同的错误“无法在location:classpath:db/migration中扫描SQL迁移”,如果你还需要什么,请告诉我details@AdarshHDDevjar文件中的sql和/或类文件是否位于classpath-db/migration中?@VadymKovalenko是jar文件中的类文件位于db/migration中。我使用的是你问题中提到的同一个java类文件。我在类路径db/migration中没有任何sql,jar文件只包含类路径中的.class文件。这里是我关于stackover flow的问题的链接,它包含了我试图做的一步一步的细节。谢谢你的帮助。@Axel Fontaine你能解释一下flyway迁移过程是如何工作的吗?它监视文件系统中的.class文件,当新文件出现时,它会执行类文件中的JDBC命令,或者。。。。
flyway.url=jdbc:postgresql://db.host
flyway.user=user
flyway.password=password
flyway.table=flyway_migrations
flyway.locations=filesystem:/home/...../sql/migrations,classpath:pack_example.migrations
flyway.sqlMigrationPrefix=update
flyway.validateOnMigrate=false
flyway.outOfOrder=true