我读过 Liquibase 迁移工具,并为 Cassandra 实现了它。为此,
首先我下载了 Liquibase(4.1.1 版)并将其目录路径添加到 PATH 变量中。
$ echo $PATH
**/home/zaryab/Downloads/Liquibase/liquibase-4.1.1:**/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
然后我将(Cassandra 4.1.1.2 的 Liquibase 扩展和 Apache Cassandra 的 Simba JDBC 驱动程序)jar 文件添加到下载的 Liquibase 的“lib”文件夹中。
在此之后 Liquibase 运行良好。
$ liquibase status
Liquibase Community 4.1.1 by Datical
####################################################
## _ _ _ _ ##
## | | (_) (_) | ##
## | | _ __ _ _ _ _| |__ __ _ ___ ___ ##
## | | | |/ _` | | | | | '_ \ / _` / __|/ _ \ ##
## | |___| | (_| | |_| | | |_) | (_| \__ \ __/ ##
## \_____/_|\__, |\__,_|_|_.__/ \__,_|___/\___| ##
## | | ##
## |_| ##
## ##
## Get documentation at docs.liquibase.com ##
## Get certified courses at learn.liquibase.com ##
## Get advanced features and support at ##
## liquibase.com/support ##
## ##
####################################################
Starting Liquibase at 12:39:45 (version 4.1.1 #10 built at 2020-10-12 19:24+0000)
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
2 change sets have not been applied to @jdbc:cassandra://localhost:9042/test01;DefaultKeyspace=test01
Liquibase command 'status' was executed successfully.
在此之后我运行 Cassandra Container 使用:
docker run --name cass -p 9042:9042 -d cassandra:3.11.8
然后在这个容器内我创建了名为“test01”的键空间和表“TestME”——两者都运行良好。
然后我新建了一个目录,新建了两个文件:
casschangelog.sql:
--liquibase formatted sql
--changeset zaryab:1
CREATE TABLE test01.TESTME2 ( foo int PRIMARY KEY, bar text );
--rollback DROP TABLE test01.TESTME2;
--changeset zaryab:2
CREATE TABLE test01.TESTME3 ( foo int PRIMARY KEY, bar text );
--rollback DROP TABLE test01.TESTME3;
liquibase.properties:
changeLogFile: casschangelog.sql
url: jdbc:cassandra://localhost:9042/test01;DefaultKeyspace=test01
username: cassandra
password: cassandra
driver: com.simba.cassandra.jdbc42.Driver
defaultSchemaName: test01
在此之后,我从终端运行“liquibase 更新”。它在 test01 键空间中创建了另外两个表。
现在,我正在尝试为 ScyllaDB 做所有这些,但我无法获得任何帮助。请帮助我。我如何为 scyllaDB 做这一切(使用 Liquibase)。
您在问题中引用的 Cassandra JDBC 驱动程序:
driver: com.simba.cassandra.jdbc42.Driver
来自 Simba(现在的 Magnitude Software)不能与 Scylla DB 一起使用。
您在下载驱动程序时同意的许可条款规定您只能将其用于:
Simba 驱动程序是专有软件,不是开源软件,因此它们的使用受规则和条件的约束。干杯!