【问题标题】:Cassandra issue with delete between filter() and save()过滤器()和保存()之间删除的Cassandra问题
【发布时间】:2017-08-21 17:14:53
【问题描述】:

我有一个问题,在加载项目和将其保存回 cassandra 之间进行删除会导致未更新的列被删除。

class TestItem(Model):
    uuid = columns.Integer(primary_key=True)
    data_1 = columns.Text()
    data_2 = columns.Text()

TestItem.create(uuid=1, data_1='data_1', data_2='data_2').save()

item = TestItem.filter(uuid=1).first()
TestItem.objects(uuid=1).delete()
item.data_2 = 'data_2_deleted'

item_b.save()
# stdout:
# TestItem(uuid=1, data_1=u'data_1', data_2='data_2_deleted')

TestItem.filter(uuid=1).first()
# stdout:
# TestItem(uuid=1, data_1=None, data_2=u'data_2_deleted')

我希望 data_1 仍然存在。

这是预期的行为吗?我可以以某种方式更改我的代码,以使该项目被完全删除或与之前查询的所有值一起保存。

【问题讨论】:

    标签: cassandra cassandra-python-driver


    【解决方案1】:

    问题在于 cassandra 驱动程序只写回实际更改的行。

    在我的用例中,我想写入所有行,无论是否更改,所以我使用了:

    TestItem.create(**dict(item_b)).save()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-26
      • 2013-12-10
      • 2021-01-10
      • 1970-01-01
      • 2014-11-01
      • 2010-11-07
      • 1970-01-01
      相关资源
      最近更新 更多