[migration] Improve update of in-memory schema during 3.18 CWAttribute.defaultval change
We weren't updating the schema properly so a bunch of structures still
had the old rdef with 'String' as object. That caused failures to add
new attributes later in the migration as their default value would be a
Binary object but the schema would expect a String.
Closes #3683640
try:
rtype, = __args__
except ValueError:
print 'USAGE: cubicweb-ctl shell <instance> detect_cycle.py -- <relation type>'
print
graph = {}
for fromeid, toeid in rql('Any X,Y WHERE X %s Y' % rtype):
graph.setdefault(fromeid, []).append(toeid)
from logilab.common.graph import get_cycles
for cycle in get_cycles(graph):
print 'cycle', '->'.join(str(n) for n in cycle)