gpt4 book ai didi

python - cqlengine 连接 set_session() 不处理不同的键空间

转载 作者:行者123 更新时间:2023-12-01 04:06:55 24 4
gpt4 key购买 nike

我有以下代码

from cassandra.cqlengine import connection


#inside a flask function
session = get_session_for_keyspace(keyspace)
connection.set_session(session)

object_list = ModelTable.objects.filter(....)

但是,尽管 session “指向”更正键空间,但 ModelTable 中的过滤器执行的选择使用之前定义的一些行的旧键空间。如何让模型使用我每次连接时设置的 session ?

最佳答案

Apostolos,它正在使用您的 session ,但是默认键空间是在第一次调用 set_session 方法时设置的。在 cqlengine 连接类中查看此代码。我猜您的模型没有定义键空间,因此使用默认的键空间。

https://github.com/datastax/python-driver/blob/master/cassandra/cqlengine/connection.py#L85-88

如果您在不同的键空间中使用不同的模型,并且只是尝试切换连接类。您可以在模型中定义默认键空间,这也应该适用于这种特定情况。

您的模型需要在类级别覆盖此值。 https://github.com/datastax/python-driver/blob/master/cassandra/cqlengine/models.py#L311

在多个 cassandra 键空间中使用相同的模型有点与 cqlengine 目前的实现方式相冲突。我建议您考虑下拉到基本驱动程序并在可能的情况下使用它。

关于python - cqlengine 连接 set_session() 不处理不同的键空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35433930/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com