2

有没有办法用 gocql 在 cassandra 中创建一个新的键空间?

4

2 回答 2

3

我认为库中没有任何特定命令,但它们通过使用 CREATE KEYSPACE 命令发出正常查询来创建密钥空间作为测试的一部分(复制如下) - https://docs.datastax.com/en/cql/ 3.3/cql/cql_reference/cqlCreateKeyspace.html

func createKeyspace(tb testing.TB, cluster *ClusterConfig, keyspace string) {
    c := *cluster
    c.Keyspace = "system"
    c.Timeout = 20 * time.Second
    session, err := c.CreateSession()
    if err != nil {
        tb.Fatal("createSession:", err)
    }

    err = session.control.query(`DROP KEYSPACE IF EXISTS ` + keyspace).Close()
    if err != nil {
        tb.Fatal(err)
    }

    err = session.control.query(fmt.Sprintf(`CREATE KEYSPACE %s
    WITH replication = {
        'class' : 'SimpleStrategy',
        'replication_factor' : %d
    }`, keyspace, *flagRF)).Close()

    if err != nil {
        tb.Fatal(err)
    }
}

请参阅此处以获取测试中的问题和源链接 - https://github.com/gocql/gocql/issues/566

于 2018-03-12T22:22:37.563 回答
1

您是否尝试执行CREARE KEYSPACE ....with session.Query?键空间创建只是另一个 CQL 语句......

于 2018-03-12T22:19:59.250 回答