From 4921167d74a38c7aec49c01dbc35f12c708daa74 Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Mon, 18 Nov 2013 13:56:40 +0100 Subject: [PATCH] [FIX] ir.model: during garbage collection of obsolete records in _process_end, do it in anti-chronological order Just like for the uninstallation process, records should be deleted with last created first, as an attempt to reverse the operations in the right order (to avoid errors due to dependencies between records). bzr revid: odo@openerp.com-20131118125640-kdo3t34uszqggu13 --- openerp/addons/base/ir/ir_model.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openerp/addons/base/ir/ir_model.py b/openerp/addons/base/ir/ir_model.py index bae6e553b54..311a5438d8f 100644 --- a/openerp/addons/base/ir/ir_model.py +++ b/openerp/addons/base/ir/ir_model.py @@ -1126,7 +1126,7 @@ class ir_model_data(osv.osv): return True to_unlink = [] cr.execute("""SELECT id,name,model,res_id,module FROM ir_model_data - WHERE module IN %s AND res_id IS NOT NULL AND noupdate=%s""", + WHERE module IN %s AND res_id IS NOT NULL AND noupdate=%s ORDER BY id DESC""", (tuple(modules), False)) for (id, name, model, res_id, module) in cr.fetchall(): if (module,name) not in self.loads: