Flyway Java 迁移在命令行工具中不起作用

Posted

技术标签:

【中文标题】Flyway Java 迁移在命令行工具中不起作用【英文标题】:Flyway Java migrations not working in command line tool 【发布时间】:2013-07-08 02:26:36 【问题描述】:

我只是无法使用 flyway 命令行工具识别和执行 Java 迁移。

到目前为止我做了什么:

    下载并解压 Flyway(命令行版本) 在conf目录下配置flyway.properties,设置如下属性 flyway.driver、flyway.url、flyway.user、flyway.password 在 jars 目录中添加了 oracle JDBC 驱动程序 执行 flyway.cmd init => 工作。历史记录表已创建。 在 ./sql 目录 V1_1__Some_sql.sql 中添加了一个 SQL 文件

    执行 flyway.cmd 迁移 => 工作。数据库已更改

    到目前为止还不错。按预期工作。现在有问题的部分:

    在我的 IDE 中创建了一个 Java 类。

    public class V1_2__Another_test implements JdbcMigration 
    
    
       public void migrate(Connection connection) throws Exception 
       
    
          PreparedStatement statement = connection.prepareStatement("INSERT INTO flyway_sample (name) VALUES ('My Name')");
    
          try 
             statement.execute();
           finally 
             statement.close();
          
       
    
    

    编译类,放入名为V1_2__Another_test.jar的jar

    将 jar 放在 sql 或 jars 中并尝试运行 flyway.cmd 迁移。 => Flyway 忽略它。 试图将 .class 文件放入 jars 或 sql => Flyway 也会忽略它。 我使用 Flyway 2.1.1。

我错过了什么?

【问题讨论】:

【参考方案1】:

你所做的听起来不错。确保将您的班级所在的包添加到 flyway.locations,您应该一切顺利。

【讨论】:

谢谢,给 flyway.locations 的包名是缺失的部分。现在它似乎工作了。 我已经提到了位置。它仍然不起作用。 flyway.jarDirs=D:/Software/dbmigrationtool/flyway-4.0/jars flyway.locations=classpath:db.migration,filesystem:D:/Workspace/Commercial/commercial/CCPlatform/src/main/database/oracle/update_tanant 我在使用 Springboot 2.2 的 flyway 时遇到了类似的问题。 Flyway 执行命令mvn flyway:info 时无法检测到我的java迁移文件【参考方案2】:

flyway.conf 文件中删除以下行。它可以发布。

flyway.jarDirs=None

【讨论】:

以上是关于Flyway Java 迁移在命令行工具中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 4,断点在 Mac OS 命令行工具的单元测试中不起作用

Flyway 通配符在 Spring Boot 中不起作用

为啥在 Spring Boot 项目中使用 Flyway 时撤消迁移不起作用?

flyway 命令行工具 - 重新执行失败的 DDL 的选项是啥?

Django 迁移在 GitHub Actions 中不起作用

在命令行中执行 flyway 回调