misc/migration/3.21.0_Any.py
changeset 10538 a2d2383612f3
parent 10490 76ab3c71aff2
child 10556 8fbff2247816
equal deleted inserted replaced
10537:346b94e3ea0a 10538:a2d2383612f3
    48 
    48 
    49         if eschema.rdef(rschema).cardinality[0] == '1':
    49         if eschema.rdef(rschema).cardinality[0] == '1':
    50             broken_eids = sql('SELECT cw_eid FROM cw_%(e)s WHERE cw_%(r)s IS NULL' % args, ask_confirm=False)
    50             broken_eids = sql('SELECT cw_eid FROM cw_%(e)s WHERE cw_%(r)s IS NULL' % args, ask_confirm=False)
    51             if broken_eids:
    51             if broken_eids:
    52                 print 'Required relation %(e)s.%(r)s missing' % args
    52                 print 'Required relation %(e)s.%(r)s missing' % args
    53                 args['eids'] = ', '.join(eid for eid, in broken_eids)
    53                 args['eids'] = ', '.join(str(eid) for eid, in broken_eids)
    54                 rql('DELETE %(e)s X WHERE X eid IN (%(eids)s)' % args)
    54                 rql('DELETE %(e)s X WHERE X eid IN (%(eids)s)' % args)
    55             broken_eids = sql('SELECT cw_eid FROM cw_%(e)s WHERE cw_%(r)s IN (SELECT cw_%(r)s FROM cw_%(e)s '
    55             broken_eids = sql('SELECT cw_eid FROM cw_%(e)s WHERE cw_%(r)s IN (SELECT cw_%(r)s FROM cw_%(e)s '
    56                               'EXCEPT SELECT eid FROM entities)' % args, ask_confirm=False)
    56                               'EXCEPT SELECT eid FROM entities)' % args, ask_confirm=False)
    57             if broken_eids:
    57             if broken_eids:
    58                 print 'Required relation %(e)s.%(r)s references unknown objects, deleting subject entities' % args
    58                 print 'Required relation %(e)s.%(r)s references unknown objects, deleting subject entities' % args
    59                 args['eids'] = ', '.join(eid for eid, in broken_eids)
    59                 args['eids'] = ', '.join(str(eid) for eid, in broken_eids)
    60                 rql('DELETE %(e)s X WHERE X eid IN (%(eids)s)' % args)
    60                 rql('DELETE %(e)s X WHERE X eid IN (%(eids)s)' % args)
    61         else:
    61         else:
    62             if sql('SELECT COUNT(*) FROM ('
    62             if sql('SELECT COUNT(*) FROM ('
    63                    '    SELECT cw_%(r)s FROM cw_%(e)s WHERE cw_%(r)s IS NOT NULL'
    63                    '    SELECT cw_%(r)s FROM cw_%(e)s WHERE cw_%(r)s IS NOT NULL'
    64                    '  EXCEPT'
    64                    '  EXCEPT'