我在 Eclipse 工作区的 2 个不同项目中创建了两个不同的 Flyway 实例。
它们指向不同的数据源/2 diff 数据库,并且还有单独的 src.main.resources.db.migration 包。每个包都包含用于各自数据库的不同 sql 文件。
当我启动我的应用程序时,Flyway 仅从一个项目中识别脚本(首先初始化项目)并将脚本从该项目执行到另一个数据库。
Flyway 是否可以同时更新 2 个数据库?
谢谢回复。但是您能否解释一下如何在 Java 代码中实现这一点。例如:目前我正在使用以下方式......
Flyway flyway = new Flyway();
InitialContext ictx = new InitialContext();
DataSource dataSource = (DataSource) ictx.lookup("DS-name");
flyway.setDataSource(dataSource);
flyway.setLocations("main.resources.db.migration");//location under first project
flyway.migrate();
Flyway flywaygen = new Flyway;
InitialContext ictx = new InitialContext();
DataSource dataSource = (DataSource) ictx.lookup("DS-name");
flywaygen.setDataSource(dataSource);
flywaygen.setLocations("main.resources.emlogis.migration");//location under second project
flywaygen.migrate();
问题是flywaygen也在寻找第一个项目位置。因此,如果在第一个位置添加了 3 个 sql 脚本,在第二个位置添加了 2 个脚本,则第二个 flyway 实例显示迁移 3 已完成。所以 flywaygen 也指向 main.resources.db.migration 而不是 main.resources.emlogis.migration。