cubicweb/misc/migration/3.24.0_Any.py
author Denis Laxalde <denis.laxalde@logilab.fr>
Thu, 14 Mar 2019 17:16:34 +0100
changeset 12526 b78e3472a7d6
parent 12185 c46f2bf815d2
permissions -rw-r--r--
Remove ctl commands using the Twisted backend This backend is not maintained, very likely no longer used in any recent instance, and not supported in Python 3.

from base64 import b64decode


# before removing extid, ensure it's coherent with cwuri
for eid, etype, encoded_extid in sql(
        "SELECT eid, type, extid FROM entities, cw_CWSource "
        "WHERE cw_CWSource.cw_name=entities.asource AND cw_CWSource.cw_type='ldapfeed'"):
    sql('UPDATE cw_{} SET cw_cwuri=%(cwuri)s WHERE cw_eid=%(eid)s'.format(etype),
        {'eid': eid, 'cwuri': b64decode(encoded_extid)})

sql('DROP TABLE IF EXISTS moved_entities')
sql('ALTER TABLE entities DROP COLUMN asource')
sql('ALTER TABLE entities DROP COLUMN extid')
sql('DROP INDEX entities_type_idx')

# force cw_schema deletion before CWSourceSchemaConfig to avoid nasty bug
drop_relation_type('cw_schema')
drop_entity_type('CWSourceSchemaConfig')

# Check the CW versions and add the entity only if needed ?
add_entity_type('CWSession')
rql('DELETE CWProperty X WHERE X pkey "system.version.pyramid"',
    ask_confirm=False)