cubicweb/misc/migration/3.22.3_Any.py
author Sylvain Thénault <sylvain.thenault@logilab.fr>
Wed, 22 Jun 2016 14:35:43 +0200
changeset 11364 a702d31ddd8f
parent 11291 7c565548fb09
permissions -rw-r--r--
[migration] Reserialize all constraints since yams introduce new JSON serializing format So we may drop support for older format in yams at some point.

from yams.constraints import UniqueConstraint

for rschema in schema.relations():
    if rschema.rule or not rschema.final:
        continue
    for rdef in rschema.rdefs.values():
        if (rdef.object != 'String'
                and any(isinstance(cstr, UniqueConstraint) for cstr in rdef.constraints)):
            table = 'cw_{0}'.format(rdef.subject)
            column = 'cw_{0}'.format(rdef.rtype)
            repo.system_source.create_index(cnx, table, column, unique=True)