misc/migration/3.10.9_Any.py
branchstable
changeset 6955 a6c32edabc8d
child 7026 2c65dd2cbfff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/misc/migration/3.10.9_Any.py	Wed Feb 09 18:05:39 2011 +0100
@@ -0,0 +1,12 @@
+if confirm('fix existing cwuri?'):
+    from logilab.common.shellutils import ProgressBar
+    from cubicweb.server.session import hooks_control
+    rset = rql('Any X, XC WHERE X cwuri XC, X cwuri ~= "%/eid/%"')
+    pb = ProgressBar(nbops=rset.rowcount, size=70)
+    with hooks_control(session, session.HOOKS_DENY_ALL, 'integrity'):
+        for i,  e in enumerate(rset.entities()):
+            e.set_attributes(cwuri=e.cwuri.replace('/eid', ''))
+            if i % 100: # commit every 100 entities to limit memory consumption
+                commit(ask_confirm=False)
+            pb.update()
+    commit(ask_confirm=False)