Project目前包含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 INFO DbMigrate:43 - 架构
ncsp
是最新的。 无需迁移。
如您所见,在同一目录中有一个迁移文件。我可以看到该文件部署在glassfish服务器上。
还有另一个因为我没有看到它被忽略的原因吗?
答案 0 :(得分:1)
原来我正在测试的是JRebel。它接管了资源加载,而不是在jar文件中查找,它正在查看其缓存目录。