【问题标题】:How to utilize .java migration format如何利用 .java 迁移格式
【发布时间】:2018-06-02 18:56:11
【问题描述】:

我已将 Flyway 5.0.2 依赖项添加到我的 build.gradle 并将 baseline-on-migrate: true 设置为我的 application.yml

我有/resources/db/migration 目录。基线条目在 flyway_schema_history 中创建。我也可以以 .sql 格式运行迁移。但是 Flyway 无法识别我在 .java 文件中的迁移。如果我将 .java 更改为 .sql 并将文件的内容从 java 更改为 sql ,那么一切正常。在文档中,它没有提及任何特殊配置或 .java 格式的任何内容。

如何让 Flyway 识别 .java 格式的迁移?

我尝试过的一个示例 java 迁移:

package db.migration;

import org.flywaydb.core.api.migration.spring.SpringJdbcMigration; 
import org.springframework.jdbc.core.JdbcTemplate;

public class V3__someMigration implements SpringJdbcMigration {

    @Override
    public void migrate(JdbcTemplate jdbcTemplate) throws Exception {

        System.out.println("migration v3");

    }

}

【问题讨论】:

    标签: flyway


    【解决方案1】:

    .java 文件根本不应该放在资源文件夹下。它应该在 /src/main/java/db/migration 下,正如 flyway 文档的 java-based-migrations 部分中所解释的那样:

    https://flywaydb.org/documentation/migrations#java-based-migrations

    【讨论】:

      【解决方案2】:

      创建你的java文件是在下面的包中创建的 src/main/resources/db/迁移

      除非您在 flyway.properties 中更改了以下环境变量 FLYWAY_LOCATIONS=db.migration

      【讨论】:

      • 你能提供它在目标文件夹中为这个java文件创建的文件名吗
      • 如果你可以分享 flyway.properties
      • 没有flyway.properties,但我在application.yml中有baseline-migrate=true或类似的东西,如果我改用.sql文件,它就可以工作。有没有我应该做的设置来使用 .java fornat?
      • 请分享未读取的java文件的文件名。还有 application.yml
      • flyway: baseline-on-migrate: true 在 application.yml 中。 V2__WeightFieldsDoubleToString.sql 是文件名。如果我将其设为 .java,则它不会读取。
      猜你喜欢
      • 1970-01-01
      • 2022-06-16
      • 1970-01-01
      • 2020-06-20
      • 2019-12-06
      • 2022-10-07
      • 1970-01-01
      • 1970-01-01
      • 2016-09-24
      相关资源
      最近更新 更多