【发布时间】:2020-10-29 00:40:56
【问题描述】:
我正在尝试从命令行运行我的 liquibase 更新。但是,我的变更日志文件中有一个 customChange,即实现 liquibase.change.custom.CustomChange 的 Java 文件。通过 Spring 运行时更新成功。但是,当我尝试通过命令行应用更新时使用
liquibase --changeLogFile=<my_changelog_file> --username=<my_user> --password=<my_password> --url=<my_url> --driver=org.postgresql.Driver --classpath='<path_to>/postgresql-42.2.8.jar:<absolute_path_to_my_jar.jar>' update
我收到此错误:
Datical 提供的 Liquibase 社区 3.8.6
运行 Liquibase 时出现意外错误:liquibase.parser.core.ParsedNodeException:liquibase.exception.CustomChangeException:java.lang.ClassNotFoundException:com..platform.changeset.EncryptPasswordsChangeset
出于安全原因,我隐藏了我传递的任何真实值。有谁知道如何让 liquibase 找到这个文件?我尝试创建一个仅包含必要文件的 jar 并将该 jar 添加到类路径中,但这似乎不起作用,因为 jar 不包含任何主类。
跑步
jar tf <my_jar.jar>
结果:
META-INF/
META-INF/MANIFEST.MF
com/<my_company>/platform/changeset/EncryptPasswordsChangeset.java
com/<my_company>/platform/security/PasswordEncryptUtil.java
com/<my_company>/platform/encrypt/SymmetricCipher.java
【问题讨论】:
-
你需要在
--classpath选项中添加你的.jar文件 -
您好,谢谢您的提示。将更新 OP 以包含更多信息。
标签: postgresql liquibase