misc/scripts/drop_external_entities.py
author Pierre-Yves David <pierre-yves.david@logilab.fr>
Mon, 22 Apr 2013 15:25:04 +0200
changeset 8896 3e414a53e794
parent 7884 35d2e2f4e10a
child 8900 010a59e12d89
permissions -rw-r--r--
[notification] fix documentation The doc say precommit, the code says postcommit. The code is right. We also clarify the documentation of another related operation looking suspiciously wrong but actually correct.

from cubicweb import UnknownEid
source, = __args__

sql("DELETE FROM entities WHERE type='Int'")

ecnx = session.cnxset.connection(source)
for e in rql('Any X WHERE X cw_source S, S name %(name)s', {'name': source}).entities():
    meta = e.cw_metainformation()
    assert meta['source']['uri'] == source
    try:
        suri = ecnx.describe(meta['extid'])[1]
    except UnknownEid:
        print 'cant describe', e.__regid__, e.eid, meta
        continue
    if suri != 'system':
        try:
            print 'deleting', e.__regid__, e.eid, suri, e.dc_title().encode('utf8')
            repo.delete_info(session, e, suri, scleanup=e.eid)
        except UnknownEid:
            print '  cant delete', e.__regid__, e.eid, meta


commit()