pythonpython-2.7cassandra-2.0cqlengine

CqlEngine - sync_table() KeyError: 'cqlengine'


I am just starting to work with Cassandra in python using cqlengine.

I tried following this link and tried ran this script:

from cqlengine import columns
from cqlengine import Model
from cqlengine import connection

from cqlengine.management import sync_table

import uuid


class ExampleModel(Model):
    example_id = columns.UUID(primary_key=True, default=uuid.uuid4)
    example_type = columns.Integer(index=True)
    created_at = columns.DateTime()
    description = columns.Text(required=False)


connection.setup(['127.0.0.1'], 'cqlengine')

sync_table(ExampleModel)

But it throws up this error:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/zopper/Desktop/django-cassandra/local/lib/python2.7/site-packages/cqlengine/management.py", line 92, in sync_table
    keyspace = cluster.metadata.keyspaces[ks_name]
KeyError: 'cqlengine'

My pip freeze is:

Django==1.7.3
argparse==1.2.1
blist==1.3.6
cassandra-driver==2.1.3
cqlengine==0.21.0
django-cassandra-engine==0.2.1
djangotoolbox==1.6.2
futures==2.2.0
six==1.9.0
wsgiref==0.1.2

Please help me understand and solve this issue. Thanks.


Solution

  • This was overlooked on my end - I'm fixing it now. create_missing_keyspace would rarely "do the right thing", and it's very difficult and time consuming to fix a keyspace created with the wrong parameters. You must now explicitly create a keyspace with the parameters you want.