[英]cassandra-driver from DataStax: How to create Cassandra DB table from a Model?
I want to use ORM from DataStax Python Driver for Cassandra DB (create some class with data and automatically create a table from it without writing too much CQL = )
我已经通过 docker 在 localhost 上部署了 Cassandra 服务器,并尝试像他们的手册中所写的那样做:
from cassandra.cluster import Cluster
from cassandra.cqlengine import columns
from cassandra.cqlengine.models import Model
from cassandra.cqlengine.management import sync_table, create_keyspace_simple
class Person(Model):
__keyspace__ = 'mega_keyspace'
__table_name__ = 'person'
id = columns.UUID(primary_key=True)
first_name = columns.Text()
last_name = columns.Text()
if __name__ == "__main__":
cluster = Cluster()
session = cluster.connect()
# create_keyspace_simple("mega_keyspace", 2)
session.execute("CREATE KEYSPACE IF NOT EXISTS mega_keyspace WITH REPLICATION = "
"{ 'class' : 'SimpleStrategy', 'replication_factor' : 2 };") # keyspace is created okay...
sync_table(Person) # And here's the error appears!
但是唉, sync_table(...)
给了我一个错误:
cassandra.cqlengine.CQLEngineException: Connection name '<object object at 0x7fbd95322ab0>' doesn't exist in the registry.
我该如何解决?
您可以通过在代码中添加以下两行来解决该问题
from cassandra.cqlengine.connection import set_default_connection, register_coneection
在 session 定义之后的主 function 中添加以下行
register_connection(str(session), session=session)
set_default_conection(session)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.