[migration] hackish black magic to bootstrap addition of formula attr during migration
Turns out we can't add an attribute to CWAttribute before the attribute
exists. add_attribute generates rql with a 'formula' relation, which CW
doesn't know about yet, so things get unhappy. Once that is fixed, we
need to make the CWAttribute addition operation deal with CWAttribute
entities that don't have a formula yet.
Finally, move the migration to bootstrapmigration_repository so it
happens early on, and use add_entity_type rather than add_relation_type
for CWComputedRType.
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)