首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CqlEngine - sync_table() KeyError:'cqlengine‘

CqlEngine - sync_table() KeyError:'cqlengine‘
EN

Stack Overflow用户
提问于 2015-01-16 12:53:31
回答 2查看 772关注 0票数 3

我刚刚开始在python中使用cqlengine与Cassandra合作。

我试着跟踪这个链接并尝试运行这个脚本:

代码语言:javascript
复制
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)

但它会抛出以下错误:

代码语言:javascript
复制
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'

我的pip freeze是:

代码语言:javascript
复制
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

请帮助我理解和解决这个问题。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-16 18:11:11

这件事在我的头上被忽视了--我正在修理它。create_missing_keyspace很少“做正确的事情”,修复使用错误参数创建的密钥空间是非常困难和耗时的。现在必须使用所需的参数显式地创建密钥空间。

票数 4
EN

Stack Overflow用户

发布于 2015-01-16 12:55:58

编辑create_missing_keyspace在cqlengine 0.21中被忽略,而不是0.20。尝试一个< 0.21版本的cqlengine或手动创建(见下文)。

创建密钥空间像这样

代码语言:javascript
复制
cqlengine.management.create_keyspace("cqlengine", replication_factor=1, strategy_class="SimpleStrategy")

可用的策略是SimpleStrategyNetworkTopologyStrategy

我找不到0.21的更新文档,所以我检查了来源。下面是0.21中的create_keyspace声明:

代码语言:javascript
复制
def create_keyspace(name, strategy_class, replication_factor, durable_writes=True, **replication_values):
    """
    creates a keyspace
    :param name: name of keyspace to create
    :param strategy_class: keyspace replication strategy class
    :param replication_factor: keyspace replication factor
    :param durable_writes: 1.2 only, write log is bypassed if set to False
    :param **replication_values: 1.2 only, additional values to ad to the replication data map
    """
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27984418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档