当前位置: 首页 > 知识库问答 >
问题:

如何构建基于flyway java的迁移

翟越
2023-03-14

我正在使用flyway命令行工具来处理我的db迁移。到目前为止,所有迁移都是sql

配置文件(仅用于选项):

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

那很好用。

但是现在我需要添加一个基于java的迁移。我真的很困惑,我找不到任何如何做的例子。如何编译,在哪里放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

然后把罐子放在不同的地方,没有效果。

flyway信息-看不到迁移。

因此,如何构建最简单的基于java的迁移。我不想使用Maven或类似的东西。只是简单的jar文件(???)它由flyway命令行工具拾取。

非常感谢。

共有2个答案

阎涵忍
2023-03-14

指定。java文件格式为。javacomo

类路径:package_example.migrations

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

有关文档,请参阅链接https://flywaydb.org/documentation/commandline/migrate

干亮
2023-03-14

确保您的。类文件位于中的db/migration目录中。jar文件和您的。jar文件位于Flyway安装/jars目录中。

flyway。位置也应设置为:

db.migration,filesystem:/home/........./sql/migrations
 类似资料:
  • 本文向大家介绍如何基于Dockerfile构建tomcat镜像,包括了如何基于Dockerfile构建tomcat镜像的使用技巧和注意事项,需要的朋友参考一下 dockerfile 是用来构建docker镜像的文件!命令参数脚本! 构建步骤: 编写一个dockerfile 文件 docker build 构建成一个镜像 docker run 运行镜像 docker push 发布镜像(Docker

  • 问题内容: 在将代码提交到SVN项目时,我需要设置哪些插件和插件功能才能使Jenkins作业触发构建? 我已经安装了标准的SVN插件以及SVN标记插件,但是我看不到任何允许触发器配置的新功能。 问题答案: 有两种解决方法: 由于它易于实施,因此我最初建议使用第一种方法。在构建过程中成熟之后,请切换到第二个。 轮询存储库以查看是否发生了更改。如果在同一轮询间隔内有两次提交,则可能“跳过”提交。 在此

  • braft 本身并不提供server功能, 你可以将braft集成到包括brpc在内的任意编程框架中,本文主要是阐述如何在分布式Server中使用braft来构建高可用系统。具体业务如何实现一个Server,本文不在展开。 Example server-side code of Counter 注册并且启动Server braft需要运行在具体的brpc server里面你可以让braft和你的业

  • 目标:构建基于 Maven 和 Tomcat 的基础镜像 本项目代码维护在 DaoCloud/docker-demo-build-base-image 项目中。 您可以在 GitHub 找到本项目并获取本文中所提到的所有代码文件。 前言 在 Java 开发的世界中,有很大一部分应用是基于 Maven 构建的,而最终的交付结果也是一个 war 包,所以,构建一个基于 Maven 和 Tomcat 的

  • 本文向大家介绍如何基于vue-cli3.0构建功能完善的移动端架子,包括了如何基于vue-cli3.0构建功能完善的移动端架子的使用技巧和注意事项,需要的朋友参考一下 基于vue-cli3.0构建功能完善的移动端架子,主要功能包括 webpack 打包扩展 css:sass支持、normalize.css、_mixin.scss、_variables.scss vw、rem布局 跨域设置 esli

  • 我用试用密钥尝试了State/BaselineMigration功能。https://flywaydb.org/documentation/concepts/baselinemigrationsFlyWay迁移执行脚本并正确移动到正确的版本。但在此基础上运行的所有迁移都失败了 从S开始2__xxx.sql然后它在版本2的模式表中创建一行并键入"SQL_STATE_SCRIPT" 再次执行flywa