为Yaml格式的更改日志文件运行liquibase CLI更新时出错

时间:2019-09-24 09:22:40

标签: liquibase

我正在尝试使用CLI运行liquibase update命令,并得到以下错误。我尝试使用3.8.0和3.7.0版的Liquibase。

Unexpected error running Liquibase: Cannot find parser that supports /path/to/ChangeLog.yaml
liquibase.exception.UnknownChangelogFormatException: Cannot find parser that supports classpath:/path/to/ChangeLog.yaml
    at liquibase.parser.ChangeLogParserFactory.getParser(ChangeLogParserFactory.java:73) ~[liquibase.jar:na]
    at liquibase.Liquibase.getDatabaseChangeLog(Liquibase.java:216) ~[liquibase.jar:na]
    at liquibase.Liquibase.update(Liquibase.java:190) ~[liquibase.jar:na]
    at liquibase.Liquibase.update(Liquibase.java:179) ~[liquibase.jar:na]
    at liquibase.integration.commandline.Main.doMigration(Main.java:1223) [liquibase.jar:na]
    at liquibase.integration.commandline.Main.run(Main.java:209) [liquibase.jar:na]
    at liquibase.integration.commandline.Main.main(Main.java:132) [liquibase.jar:na]

我尝试的命令如下:

./liquibase \
      --driver=com.mysql.jdbc.Driver \
      --changeLogFile=classpath:/path/to/ChangeLog.yaml \
      --url="jdbc:mysql://localhost/mydb" \
      --username=user \
      --password=pass \
      update

MySQL和SnakeYaml库位于lib目录(如YAML Format中所述)和类路径中。 XML格式的更改日志按预期工作。您能否建议如何正确使用YAML格式的变更集?

谢谢

1 个答案:

答案 0 :(得分:0)

我也遇到了这个问题。
请尝试对我有帮助的解决方案:

  1. snakeyaml-1.12.jar移至jre/lib/ext
  2. 创建Liquibase.properties
  3. 添加第changeLogFile: path/to/ChangeLog.yaml行。