class SecondModel(Model): __table_name__ = 'first_model' first_key = columns.UUID(primary_key=True) second_key = columns.UUID() third_key = columns.Text() fourth_key = columns.Text()
class FourthModel(Model): __table_name__ = 'first_model' first_key = columns.UUID(primary_key=True) second_key = columns.UUID() third_key = columns.Text() # renamed model field, but map to existing column renamed = columns.Map(columns.Text, columns.Text, db_field='blah')
class ThirdModel(Model): __table_name__ = 'first_model' first_key = columns.UUID(primary_key=True) second_key = columns.UUID() third_key = columns.Text() # removed fourth key, but it should stay in the DB blah = columns.Map(columns.Text, columns.Text)
class CommentsByVideoModel(Model): """Model class that maps to the comments_by_video table""" __table_name__ = 'comments_by_video' video_id = columns.UUID(db_field='videoid', primary_key=True) comment_id = columns.UUID(db_field='commentid', primary_key=True, clustering_order='DESC') user_id = columns.UUID(db_field='userid') comment = columns.Text()
class UserVideosModel(Model): """Model class that maps to the user_videos table""" __table_name__ = 'user_videos' user_id = columns.UUID(primary_key=True, db_field='userid') added_date = columns.DateTime(primary_key=True, clustering_order='DESC') video_id = columns.UUID(primary_key=True, clustering_order='ASC', db_field='videoid') name = columns.Text() preview_image_location = columns.Text()
class VideosModel(Model): """Model class that maps to the videos table""" __table_name__ = 'videos' video_id = columns.UUID(primary_key=True, db_field='videoid') user_id = columns.UUID(db_field='userid') name = columns.Text() description = columns.Text() location = columns.Text() location_type = columns.Integer() preview_image_location = columns.Text() tags = columns.Set(columns.Text) added_date = columns.DateTime()
class UserModel(Model): """Model class that maps to the user table""" __table_name__ = 'users' user_id = columns.UUID(db_field='userid', primary_key=True) first_name = columns.Text(db_field='firstname') last_name = columns.Text(db_field='lastname') email = columns.Text() created_date = columns.Date()
class ComplexModelRouting(Model): __table_name__ = 'complex_model_routing' partition = columns.UUID(partition_key=True, default=uuid4) cluster = columns.Integer(partition_key=True) count = columns.Integer() text = columns.Text(partition_key=True) float = columns.Float(partition_key=True) text_2 = columns.Text()
class TestModelSave(Model): partition = columns.UUID(primary_key=True, default=uuid4) cluster = columns.Integer(primary_key=True) count = columns.Integer(required=False) text = columns.Text(required=False, index=True) text_set = columns.Set(columns.Text, required=False) text_list = columns.List(columns.Text, required=False) text_map = columns.Map(columns.Text, columns.Text, required=False)
class ModelWithTableProperties(Model): __options__ = {'bloom_filter_fp_chance': '0.76328', 'comment': 'TxfguvBdzwROQALmQBOziRMbkqVGFjqcJfVhwGR', 'gc_grace_seconds': '2063', 'read_repair_chance': '0.17985', 'dclocal_read_repair_chance': '0.50811'} key = columns.UUID(primary_key=True)
class TestNestedModel(Model): partition = columns.UUID(primary_key=True, default=uuid4) list_list = columns.List(columns.List(columns.Integer), required=False) map_list = columns.Map(columns.Text, columns.List(columns.Text), required=False) set_tuple = columns.Set(columns.Tuple(columns.Integer, columns.Integer), required=False)
class TestIndexSetModel(Model): partition = columns.UUID(primary_key=True) int_set = columns.Set(columns.Integer, index=True) int_list = columns.List(columns.Integer, index=True) text_map = columns.Map(columns.Text, columns.DateTime, index=True) mixed_tuple = columns.Tuple(columns.Text, columns.Integer, columns.Text, index=True)
class AllLeveledOptionsModel(Model): __options__ = { 'compaction': { 'class': 'org.apache.cassandra.db.compaction.LeveledCompactionStrategy', 'sstable_size_in_mb': '64' } } cid = columns.UUID(primary_key=True) name = columns.Text()
class TestTupleModel(Model): partition = columns.UUID(primary_key=True, default=uuid4) int_tuple = columns.Tuple(columns.Integer, columns.Integer, columns.Integer, required=False) text_tuple = columns.Tuple(columns.Text, columns.Text, required=False) mixed_tuple = columns.Tuple(columns.Text, columns.Integer, columns.Text, required=False)
class AllSizeTieredOptionsModel(Model): __options__ = { 'compaction': { 'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'bucket_low': '.3', 'bucket_high': '2', 'min_threshold': '2', 'max_threshold': '64', 'tombstone_compaction_interval': '86400' } } cid = columns.UUID(primary_key=True) name = columns.Text()
class AllDatatypes(UserType): a = columns.Ascii() b = columns.BigInt() c = columns.Blob() d = columns.Boolean() e = columns.DateTime() f = columns.Decimal() g = columns.Double() h = columns.Float() i = columns.Inet() j = columns.Integer() k = columns.Text() l = columns.TimeUUID() m = columns.UUID() n = columns.VarInt()
class FamilyMembers(Model): __keyspace__ = KEYSPACE id = columns.UUID(primary_key=True, default=uuid4) surname = columns.Text(primary_key=True) name = columns.Text(primary_key=True) birth_year = columns.Integer() sex = columns.Text(min_length=1, max_length=1) def validate(self): super(FamilyMembers, self).validate() if self.sex and self.sex not in 'mf': raise ValidationError("FamilyMember.sex must be one of ['m', 'f']") if self.birth_year and self.sex == 'f': raise ValidationError( "FamilyMember.birth_year is set, and 'a lady never tells'")
class AllDatatypesModel(Model): id = columns.Integer(primary_key=True) a = columns.Ascii() b = columns.BigInt() c = columns.Blob() d = columns.Boolean() e = columns.DateTime() f = columns.Decimal() g = columns.Double() h = columns.Float() i = columns.Inet() j = columns.Integer() k = columns.Text() l = columns.TimeUUID() m = columns.UUID() n = columns.VarInt()
class BaseEntity(CustomDjangoCassandraModel): """ The common field that will be shared between all the managed entities """ __abstract__ = True # A unique identifier of the entity _id = columns.UUID(primary_key=True, default=uuid.uuid4) # When was created the entity and the last modification date created_at = columns.DateTime(default=datetime.utcnow) updated_at = columns.DateTime(default=datetime.utcnow) # Controls if the entity is active or has been deleted is_deleted = columns.Boolean(default=False) deleted_reason = columns.Text() class Meta: get_pk_field = '_id'
class CQModel(Model): __queryset__ = QSet part = columns.UUID(primary_key=True) data = columns.Text()
class Stuff(Model): id = columns.UUID(primary_key=True, default=lambda: uuid4()) words = columns.Text() content = columns.Text() numbers = columns.Integer()
class TestIfNotExistsWithCounterModel(Model): id = columns.UUID(primary_key=True, default=lambda: uuid4()) likes = columns.Counter()
class CDQModel(Model): __dmlquery__ = DMLQ part = columns.UUID(primary_key=True) data = columns.Text()
class TestTimestampModel(Model): id = columns.UUID(primary_key=True, default=lambda: uuid4()) count = columns.Integer()
class TestIfNotExistsModel(Model): id = columns.UUID(primary_key=True, default=lambda: uuid4()) count = columns.Integer() text = columns.Text(required=False)
class WildDBNames(Model): id = columns.UUID(primary_key=True, default=lambda: uuid4()) content = columns.Text(db_field='words_and_whatnot') numbers = columns.Integer(db_field='integers_etc')
class ChangedInconsistent(Model): __table_name__ = 'inconsistent' __table_name_case_sensitive__ = True first_key = columns.UUID(primary_key=True) second_key = columns.Text(index=True)
class BaseInconsistent(Model): __table_name__ = 'inconsistent' first_key = columns.UUID(primary_key=True) second_key = columns.Integer(index=True) third_key = columns.Integer(index=True)
class IndexCaseSensitiveModel(Model): __table_name__ = 'IndexModel' __table_name_case_sensitive__ = True first_key = columns.UUID(primary_key=True) second_key = columns.Text(index=True)
class IndexModel(Model): __table_name__ = 'index_model' first_key = columns.UUID(primary_key=True) second_key = columns.Text(index=True)