cubicweb/misc/migration/3.24.0_Any.py
author Sylvain Thénault <sylvain.thenault@logilab.fr>
Mon, 30 Jan 2017 17:17:17 +0100
branch3.24
changeset 11937 7d3ee5a516fa
parent 11890 01bfc50e1a47
child 11948 73ed9c204de9
permissions -rw-r--r--
[migration] Fix crash on 3.24 migration Some sql using a column droped the line above crash migration of cw < 3.24.

from base64 import b64decode


# 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)

# 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 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')