gpt4 book ai didi

java - 在命令行中执行 flyway 回调

转载 作者:行者123 更新时间:2023-11-30 10:22:06 25 4
gpt4 key购买 nike

我在 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=...

无法实例化类“com.company.MyCallback”

我也尝试了 jarDirs 选项,但同样的错误

flyway repair migrate 
-locations=path/to/sql/migration
-jarDirs=/folder/containing/the/jar/i/generated
-callbacks=com.company.MyCallback
-url=...

但是没有结果。任何帮助或提示将不胜感激!

最佳答案

根据文档,-jarDirs 开关支持您正在尝试的修复和迁移命令以及文档状态

jarDirs Default:{install-dir}/jars Comma-separated list of directories containing JDBC drivers and Java-based migrations

但这在加载自定义回调时不起作用。自定义回调似乎仅从 ${FLYWAY_HOME}/jars 加载。

我使用从 org.flywaydb.core.api.callback.BaseFlywayCallback 扩展的简单回调进行了一些测试,它似乎工作正常。

希望这能解决您的问题。

关于java - 在命令行中执行 flyway 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47471894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com