cubicweb/misc/migration/3.22.3_Any.py
author Sylvain Thénault <sylvain.thenault@logilab.fr>
Fri, 30 Sep 2016 17:39:17 +0200
changeset 11763 39df042f4ab4
parent 11291 7c565548fb09
permissions -rw-r--r--
[repository] Drop type_and_source_from_eid and rename related cache We don't want to handle anymore the entities.asource column so we shouldn't use those anymore. Also rename repository's _type_source_cache into _type_extid_cache as this is what it's containing now. Do similar renaming to the system source API. Related to #15538288
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)