misc/migration/bootstrapmigration_repository.py
changeset 2463 5200c0f7d2d5
parent 2462 9e670072884d
child 2480 a04caff1322e
--- a/misc/migration/bootstrapmigration_repository.py	Fri Jul 24 09:28:59 2009 +0200
+++ b/misc/migration/bootstrapmigration_repository.py	Fri Jul 24 09:30:04 2009 +0200
@@ -10,6 +10,22 @@
 
 applcubicwebversion, cubicwebversion = versions_map['cubicweb']
 
+if applcubicwebversion < (3, 4, 0) and cubicwebversion >= (3, 4, 0):
+    from cubicweb.server.hooks import uniquecstrcheck_before_modification
+    session.set_shared_data('do-not-insert-cwuri', True)
+    repo.hm.unregister_hook(uniquecstrcheck_before_modification, 'before_add_entity', '')
+    repo.hm.unregister_hook(uniquecstrcheck_before_modification, 'before_update_entity', '')
+    add_relation_type('cwuri')
+    base_url = session.base_url()
+    # use an internal session since some entity might forbid modifications to admin
+    isession = repo.internal_session()
+    for eid, in rql('Any X', ask_confirm=False):
+        isession.execute('SET X cwuri %(u)s WHERE X eid %(x)s',
+                         {'x': eid, 'u': base_url + u'eid/%s' % eid})
+    isession.commit()
+    repo.hm.register_hook(uniquecstrcheck_before_modification, 'before_add_entity', '')
+    repo.hm.register_hook(uniquecstrcheck_before_modification, 'before_update_entity', '')
+
 if applcubicwebversion < (3, 2, 2) and cubicwebversion >= (3, 2, 1):
     from base64 import b64encode
     for table in ('entities', 'deleted_entities'):