我正在尝试设置 cassandra liquibase。 https://github.com/liquibase/liquibase-cassandra
从终端执行的代码:
java -jar ~/.m2/repository/org/liquibase/liquibase-core/3.4.1/liquibase-core-3.4.1.jar \
--driver=org.apache.cassandra.cql.jdbc.CassandraDriver \
--classpath="/.../liquibase-cassandra/target/liquibase-cassandra-1.0-SNAPSHOT.jar:/.../liquibase-cassandra/target/cassandra-jdbc-1.2.5.jar" \
--changeLogFile=/.../conf/liquibase.xml \
--url=jdbc:cassandra://host1--host2--host3:9160/keyspace1 \
--username=cassandra \
--password=cassandra \
update
Error: Unexpected error running Liquibase: Could not initialize class org.apache.cassandra.cql.jdbc.CassandraDriver
我不确定使用 liquibase cassandra 扩展的正确语法是什么。我克隆了 liquibase-cassandra 项目,用 mvn 创建了一个 jar 并假设 org.apache.cassandra.cql.jdbc.CassandraDriver
liquibase.ext.cassandra.database.CassandraDatabase
中提到class是我需要的jdbc驱动程序。
我没有任何 liquibase 的经验,我还在上大学,在某些领域我的知识还很模糊。
最佳答案
正如错误所示,我的 jdbc 驱动程序有问题。我也无法使用 SQLWorkbenchJ 和该驱动程序连接到 Cassandra 数据库。我不确定问题是否出在我的网址语法上。
我尝试使用不同的 jdbc 驱动程序。 com.github.cassandra.jdbc.CassandraDriver
。 Jar:cassandra-jdbc-driver-0.6.4-shaded.jar
和 jar 的 url:https://github.com/zhicwu/cassandra-jdbc-driver/releases .
此特定驱动程序的 URL 语法:url=jdbc:c*://ipaddress:port
。
java -jar /.../.m2/repository/org/liquibase/liquibase-core/3.4.1/liquibase-core-3.4.1.jar \
--driver=com.github.cassandra.jdbc.CassandraDriver \
--classpath="/.../cassandra-jdbc-driver-0.6.4-shaded.jar:/.../liquibase-cassandra/target/liquibase-cassandra-1.0-SNAPSHOT.jar:/.../log4j-1.2.17.jar" \
--changeLogFile=/.../conf/liquibase.xml \
--url=jdbc:c*://127.0.0.1:9042 \
--username=cassandra \
--password=cassandra \
update
这有效。 :)
关于java - 设置 Cassandra Liquibase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45569547/