Как определить замороженные столбцы в Кассандре, используя cqlengine? - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь создать замороженный список в Cassandra, чтобы я мог использовать этот столбец в качестве первичного ключа, я могу сделать это, если я выполню запрос вручную,

some_field frozen <list<int>>

но мне трудно понять, как это сделать с помощью cqlengine в Python,

some_field = columns.List(columns.Integer(), primary_key=True)

Как мне сделать то же самое с помощью cqlengine?

РЕДАКТИРОВАТЬ: окончательный фрагмент кода выглядит следующим образом,

from cassandra.cqlengine import columns
from cassandra.cqlengine.models import Model

class MyModel(Model):
    __table_name__ = 'my_table'
    __options__ = {'compaction': {'class': 'DateTieredCompactionStrategy',
                              'base_time_seconds': 3600,
                              'max_sstable_age_days': 1}}

    keys = columns.Set(columns.Integer(), primary_key=True)
    columns.BaseCollectionColumn._freeze_db_type(keys)
    time_stamp = columns.DateTime(primary_key=True, clustering_order="DESC")
    ...

1 Ответ

0 голосов
/ 14 января 2019

Как Я вижу в исходном коде , вам нужно вызвать функцию _freeze_db_type в экземпляре типа коллекции после того, как вы его создали - это изменит тип на frozen<...>.

...