gocassandragocql

How to create a keyspace in cassandra using gocql


Is there any way to create a new keyspace in cassandra with gocql ?


Solution

  • I dont think there is any specific command in the library, but they create keyspaces as part of the tests (copied below) by issuing a normal query with the CREATE KEYSPACE command - 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)
        }
    }
    

    See here for issue and link to source in tests - https://github.com/gocql/gocql/issues/566