cubicweb/misc/migration/3.22.3_Any.py
author Denis Laxalde <denis.laxalde@logilab.fr>
Wed, 13 Jun 2018 11:09:17 +0200
changeset 12317 5166a1a7e4f4
parent 11291 7c565548fb09
permissions -rw-r--r--
[py3] Let InstanceCommand.run_arg() always return an int The caller of this method (which is method "run_args") does `max(status, self.run_arg(appid))` and run_arg might return None if the underlying <cmdname>_instance method returns None. On python3 max(1, None) breaks with "TypeError: unorderable types: int() > NoneType()". So we enforce run_arg() method to return an integer even if the underlying method returns None. This fixes call of "cubicweb-ctl i18ninstance" with 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)