【发布时间】: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