You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Liquibase操作Cassandra数据库时MD5SUM相关SQL语法错误求助

Liquibase操作Cassandra数据库时MD5SUM相关SQL语法错误求助

大家好,我正在Kotlin项目里尝试用Liquibase实现Cassandra数据库的自动化迁移,目前碰到了一个棘手的语法错误问题,想请教下有没有同行遇到过或者知道怎么解决?

我的环境配置

  • 使用的依赖版本:
    • liquibase-core: 4.30.0
    • liquibase-cassandra-4.30.0.jar
    • cassandra-jdbc-wrapper-4.13.1-bundle.jar
  • Liquibase配置文件(liquibase.properties)中的Cassandra相关内容:
    url=jdbc:cassandra://192.168.120.40:9042/keyspace_name?localdatacenter=datacenter1&compliancemode=Liquibase
    driver=com.ing.data.cassandra.jdbc.CassandraDriver
    classpath=./libs/liquibase-cassandra-4.30.0.jar;./libs/cassandra-jdbc-wrapper-4.13.1-bundle.jar
    
  • Cassandra版本:4.1.8

问题重现步骤

  1. 第一次执行liquibase status命令(不管是通过Gradle插件还是直接用Liquibase CLI),结果是成功的,Cassandra里也正常创建了databasechangelog和databasechangeloglock两张表;
  2. 但当我第二次执行liquibase status,或者第一次执行liquibase update成功后,再执行任何Liquibase命令(比如status、update),就会抛出语法错误,核心报错信息如下:
    Caused by: liquibase.exception.DatabaseException: Error executing SQL SELECT MD5SUM FROM keyspace_name.databasechangelog WHERE MD5SUM IS NOT NULL AND MD5SUM NOT LIKE '9:%': com.datastax.oss.driver.api.core.servererrors.SyntaxError: line 1:85 no viable alternative at input 'NOT' (...MD5SUM IS NOT NULL AND [MD5SUM] NOT...)
        at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:104)
        at liquibase.executor.jvm.JdbcExecutor.query(JdbcExecutor.java:251)
        at liquibase.executor.jvm.JdbcExecutor.query(JdbcExecutor.java:259)
        at liquibase.executor.jvm.JdbcExecutor.queryForList(JdbcExecutor.java:324)
    

我已经尝试过的方法

我试过更换不同版本的Liquibase和Cassandra专用插件,但都没能解决这个问题。

期望的结果

希望在第一次成功执行Liquibase命令(status或update)后,后续的任何Liquibase命令都能正常运行,不会出现这类CQL语法相关的错误。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.07 07:32:57