我有一个JSF应用程序,它使用Flyway更新数据库。
用户登录后,将调用一种方法,该方法检查是否存在脚本,然后开始通过Flyway执行它们。
private void updateDB() {
status = Status.PROCESSING;
DataSource ds = getDataSource();
Flyway flyway = new Flyway();
flyway.setDataSource(ds);
flyway.setInitOnMigrate(true);
flyway.setLocations(PROTOCOL + SCRIPTS_DB_MIGRATION);
flyway.setOutOfOrder(true);
try {
flyway.migrate();
deletaScripts();
status = Status.UPDATING;
} catch (FlywayException e) {
status = Status.FAILED;
e.printStackTrace();
createZipperLog();
}
}
同时,用户被发送到加载页面。
我想知道如何放置一些侦听器或其他内容来向用户显示正在执行哪个脚本。
谢谢
最佳答案
从Flyway 3.0开始,您可以实现FlywayCallback
来挂钩生命周期并获取所需的信息。