diff options
author | René 'Necoro' Neumann <necoro@necoro.net> | 2017-10-03 22:07:57 +0200 |
---|---|---|
committer | René 'Necoro' Neumann <necoro@necoro.net> | 2017-10-03 22:07:57 +0200 |
commit | cea032ecb83a589be94860f6045c55533237c529 (patch) | |
tree | 6fd65640d8e12d407c182af93d16e4f103ff2b94 /archivist/model.py | |
parent | 90a209e69f455b49c4a642fb2b3288f915fed1dc (diff) | |
download | archivist-cea032ecb83a589be94860f6045c55533237c529.tar.gz archivist-cea032ecb83a589be94860f6045c55533237c529.tar.bz2 archivist-cea032ecb83a589be94860f6045c55533237c529.zip |
Unique index on tags as a functional one. See also:
https://github.com/coleifer/peewee/issues/1357
Diffstat (limited to 'archivist/model.py')
-rw-r--r-- | archivist/model.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/archivist/model.py b/archivist/model.py index f03927e..8aa8897 100644 --- a/archivist/model.py +++ b/archivist/model.py @@ -7,7 +7,7 @@ import datetime from enum import Enum, unique from pkg_resources import resource_filename -from .peewee_ext import EnumField +from .peewee_ext import EnumField, SQLIndex from .peewee_fixes import * # dummy to force evaluation of those fixes db = SqliteExtDatabase('test.db', pragmas=[('foreign_keys', 'ON')]) @@ -122,6 +122,7 @@ class Prefix(BaseModel): @table class Tag(BaseModel): __keys__ = ('name', 'prefix') + name = CharField() prefix = ForeignKeyField(Prefix, null=True, related_name = 'tag', db_column = 'prefix') description = CharField(null=True) @@ -140,7 +141,8 @@ class Tag(BaseModel): class Meta: indexes = [ - (('name', 'prefix'), True) + (('name', 'prefix'), False), + (('name', SQLIndex('coalescePrefix', "COALESCE(prefix,'')")), True) ] @property |