【发布时间】:2021-10-24 10:40:33
【问题描述】:
from django.utils import timezone
from cassandra.cqlengine import columns
from django_cassandra_engine.models import DjangoCassandraModel
class RequestResponse(DjangoCassandraModel):
id = columns.UUID(primary_key=True, default=uuid.uuid4)
sel_no = columns.Text(index=True)
transaction_type = columns.Text()
created_at = columns.DateTime(default=timezone.now())
updated_at = columns.DateTime(default=timezone.now())
我正在使用 django-cassandra-engine==1.6.1。当我试图从这个模型中删除我的所有数据时,就会发生这些错误。我的命令行:
RequestResponse.objects.all().count()
>> 10123
RequestResponse.objects.all().delete()
然后这些错误发生了。
996 partition_keys = set(x.db_field_name for x in self.model._partition_keys.values())
997 if partition_keys - set(c.field for c in self._where):
--> 998 raise QueryException("The partition key must be defined on delete queries")
999
1000 dq = DeleteStatement(
QueryException: The partition key must be defined on delete queries
【问题讨论】:
-
截断可能是一个不错的选择,然后发出删除。 Cassandra 上的删除以特殊方式处理,因此如果您想删除表中的所有数据,更好的选择是截断表并继续。