cubicweb/misc/migration/3.22.3_Any.py
author Denis Laxalde <denis.laxalde@logilab.fr>
Fri, 05 Apr 2019 17:58:19 +0200
changeset 12567 26744ad37953
parent 11291 7c565548fb09
permissions -rw-r--r--
Drop python2 support This mostly consists in removing the dependency on "six" and updating the code to use only Python3 idioms. Notice that we previously used TemporaryDirectory from cubicweb.devtools.testlib for compatibility with Python2. We now directly import it from tempfile.
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)