cubicweb/misc/migration/3.22.3_Any.py
author Laurent Peuch <cortex@worlddomination.be>
Tue, 10 Dec 2019 23:34:46 +0100
changeset 12801 1156108afab9
parent 11291 7c565548fb09
permissions -rw-r--r--
[doc/building/fix] encoding issue was crashing sphinx in python3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11289
3e69bccc2022 [sql gen] Properly create UNIQUE index on non string column. Closes #13728492
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     1
from yams.constraints import UniqueConstraint
3e69bccc2022 [sql gen] Properly create UNIQUE index on non string column. Closes #13728492
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     2
3e69bccc2022 [sql gen] Properly create UNIQUE index on non string column. Closes #13728492
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     3
for rschema in schema.relations():
3e69bccc2022 [sql gen] Properly create UNIQUE index on non string column. Closes #13728492
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     4
    if rschema.rule or not rschema.final:
3e69bccc2022 [sql gen] Properly create UNIQUE index on non string column. Closes #13728492
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     5
        continue
3e69bccc2022 [sql gen] Properly create UNIQUE index on non string column. Closes #13728492
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     6
    for rdef in rschema.rdefs.values():
3e69bccc2022 [sql gen] Properly create UNIQUE index on non string column. Closes #13728492
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     7
        if (rdef.object != 'String'
3e69bccc2022 [sql gen] Properly create UNIQUE index on non string column. Closes #13728492
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     8
                and any(isinstance(cstr, UniqueConstraint) for cstr in rdef.constraints)):
3e69bccc2022 [sql gen] Properly create UNIQUE index on non string column. Closes #13728492
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
     9
            table = 'cw_{0}'.format(rdef.subject)
3e69bccc2022 [sql gen] Properly create UNIQUE index on non string column. Closes #13728492
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    10
            column = 'cw_{0}'.format(rdef.rtype)
3e69bccc2022 [sql gen] Properly create UNIQUE index on non string column. Closes #13728492
Sylvain Thénault <sylvain.thenault@logilab.fr>
parents:
diff changeset
    11
            repo.system_source.create_index(cnx, table, column, unique=True)