Как создать пространство клавиш в Кассандре с помощью gocql

Есть ли способ создать новое пространство ключей в Кассандре с помощью gocql?

2 ответа

Решение

Я не думаю, что в библиотеке есть какая-то конкретная команда, но они создают пространства ключей как часть тестов (скопировано ниже), выполняя обычный запрос с помощью команды 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

Вы пытались выполнить CREARE KEYSPACE .... с session.Query? Создание Keyspace - это просто еще один оператор CQL...

Другие вопросы по тегам