我在docker容器中使用flyway命令行来应用我的迁移脚本。我现在必须在我的实现中添加一个Java回调。可以通过flyway-maven-plugin成功检测到并通过<callback>
中的pom.xml
定义启动回调。我生成了这个项目的JAR。
我现在想用命令行运行它。以下命令有效,我的SQL迁移已应用
flyway repair migrate
-locations=path/to/sql/migration
-url=...
如果我以这种方式添加回调,它会告诉我以下错误
flyway repair migrate
-locations=path/to/sql/migration
-callbacks=com.company.MyCallback
-url=...
无法实例化课程&#34; com.company.MyCallback&#34;
我也尝试过jarDirs选项,但是同样的错误
flyway repair migrate
-locations=path/to/sql/migration
-jarDirs=/folder/containing/the/jar/i/generated
-callbacks=com.company.MyCallback
-url=...
但没有结果。任何帮助或提示将不胜感激!
答案 0 :(得分:1)
根据文档,您正在尝试的修复和迁移命令支持-jarDirs
开关,文档说明
jarDirs默认值:{install-dir} / jars以逗号分隔的包含JDBC驱动程序和基于Java的迁移的目录列表
但这在加载自定义回调时不起作用。自定义回调似乎仅从${FLYWAY_HOME}/jars
加载。
我使用从org.flywaydb.core.api.callback.BaseFlywayCallback
扩展的简单回调进行了一些测试,它似乎工作正常。
希望这能解决您的问题。