Flyway:同时使用自定义和 Java 回调

Flyway: Using both custom and Java Callbacks

如果我指定

flyway.callbacks=com.myclass.CustomCallBack

它被调用得很好,但我注意到它似乎抑制了 SQL 回调功能。有什么办法可以兼得吗?我注意到有一个 SqlScriptFlywayCallback,但那是你的 'internal' 类...

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

作为一种简单的解决方法,您可以按照 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(...));