Flyway:使用自定义和Java回调

时间:2015-06-18 18:18:18

标签: flyway

如果我指定

flyway.callbacks=com.myclass.CustomCallBack

它被称为罚款,但我注意到它似乎抑制了SQL回调功能。有没有办法让两者都有?我注意到有一个SqlScriptFlywayCallback,但那是你的“内部”类之一....

2 个答案:

答案 0 :(得分:1)

目前唯一的方法是引用内部类和您自己的类。请在问题跟踪器中提交增强请求。

答案 1 :(得分:0)

作为一种简单的解决方法,您可以像Axel建议的那样初始化SqlScriptFlywayCallback。这是我如何做到的,给定了一个初始化的flyway实例:

 DbSupport dbSupport;
 try {
     dbSupport = DbSupportFactory.createDbSupport(flyway.getDataSource().getConnection(), false);
 } catch (SQLException e) {
     throw new RuntimeException("Could not get connection to database");
 }  

 final FlywayCallback runSqlCallbacks = new SqlScriptFlywayCallback(
         dbSupport,
         flyway.getClassLoader(),
         new Locations(flyway.getLocations()),
         new PlaceholderReplacer(flyway.getPlaceholders(),
                 flyway.getPlaceholderPrefix(),
                 flyway.getPlaceholderSuffix()),
         flyway.getEncoding(),
         flyway.getSqlMigrationSuffix()
 ); 

 flyway.setCallbacks(
         runSqlCallbacks,
         new MyCallback(...));