【问题标题】:Flyway migration file is not picked upFlyway迁移文件未拾取
【发布时间】:2014-06-16 14:49:07
【问题描述】:

项目目前包含4个sql迁移文件,但是最新的迁移文件ddl/V201406161418__Add_tracking_codes.sql没有拾取。

通过此方法运行迁移(已删除错误处理):

@PostConstruct
private void onStartup() {
    Flyway flyway = new Flyway();
    flyway.setInitOnMigrate(true);
    flyway.setLocations(getLocations()); // abstract String[] getLocations()
    flyway.setOutOfOrder(true);
    flyway.setTable(getTable()); // abstract String getTable()

    for(DataSource ds : getDataSources()) { // abstract List<DataSource> getDataSources()
        flyway.setDataSource(ds);
        flyway.repair();
        for (MigrationInfo i : flyway.info().all()) {
            log.info("migrate task: " + i.getVersion() + " : "
                    + i.getDescription() + " from file: " + i.getScript());
        }
        flyway.migrate();
    }
}

这是我在日志中看到的:

迁移任务:201405131722:来自文件的初始架构: ddl/V201405131722__Initial_schema.sql

迁移任务:201405131734:来自文件的初始产品数据: cfg/V201405131734__Initial_product_data.sql

迁移任务:201406091356:文件增加费用: cfg/V201406091356__Fee_increase.sql

2014-06-16 16:01:58 WARN DbMigrate:47 - outOfOrder 模式处于活动状态。 架构 ncsp 的迁移可能无法重现。

2014-06-16 16:01:58 信息 DbMigrate:43 - 架构 ncsp 是最新的。 无需迁移。

如您所见,在同一个目录中找到了一个迁移文件。我可以看到文件部署在 glassfish 服务器上。

还有其他原因我看不到它被忽略了吗?

【问题讨论】:

    标签: flyway


    【解决方案1】:

    原来我正在测试的是 JRebel。它接管了资源加载,而不是在 jar 文件中查找,而是在其缓存目录中查找。

    【讨论】:

      猜你喜欢
      • 2014-05-14
      • 2017-12-23
      • 1970-01-01
      • 2020-01-02
      • 2016-10-24
      • 2015-01-03
      • 2019-12-27
      • 2020-04-29
      • 2020-08-17
      相关资源
      最近更新 更多