在Flyway上显示进度

时间:2014-07-08 11:53:05

标签: java jsf flyway

我有一个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();
    }
}

同时用户被发送到加载页面。

我想知道如何将一些监听器或其他内容显示给用户正在执行哪个脚本。

由于

1 个答案:

答案 0 :(得分:3)

从Flyway 3.0开始,您可以实现FlywayCallback以挂钩生命周期并获取所需的信息。