From 76593cd081b53ca018417835c8fc1b35bcf875f4 Mon Sep 17 00:00:00 2001 From: Olivier Dony Date: Fri, 23 Oct 2015 19:29:44 +0200 Subject: [PATCH] [FIX] base: ir.model.data: safer tests for index creation Complements b99ef3b125af374c4055908a56563d4da036be65. The index definitions have changed, so we need distinct names and existence tests to make sure they get properly created/altered on older databases. --- openerp/addons/base/ir/ir_model.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/openerp/addons/base/ir/ir_model.py b/openerp/addons/base/ir/ir_model.py index 3a76ebb3ef0..a00596fa418 100644 --- a/openerp/addons/base/ir/ir_model.py +++ b/openerp/addons/base/ir/ir_model.py @@ -937,9 +937,11 @@ class ir_model_data(osv.osv): def _auto_init(self, cr, context=None): super(ir_model_data, self)._auto_init(cr, context) - cr.execute('SELECT indexname FROM pg_indexes WHERE indexname = \'ir_model_data_module_name_index\'') + cr.execute("SELECT indexname FROM pg_indexes WHERE indexname = 'ir_model_data_module_name_uniq_index'") + if not cr.fetchone(): + cr.execute('CREATE UNIQUE INDEX ir_model_data_module_name_uniq_index ON ir_model_data (module, name)') + cr.execute("SELECT indexname FROM pg_indexes WHERE indexname = 'ir_model_data_model_res_id_index'") if not cr.fetchone(): - cr.execute('CREATE UNIQUE INDEX ir_model_data_module_name_index ON ir_model_data (module, name)') cr.execute('CREATE INDEX ir_model_data_model_res_id_index ON ir_model_data (model, res_id)') # NEW V8 API