From 7e7ecf36f1fa8a5dac30ef8b2498c448eee30ed8 Mon Sep 17 00:00:00 2001 From: Jos De Graeve Date: Wed, 18 Mar 2015 18:20:25 +0100 Subject: [PATCH] [FIX] service: error database in use on duplicate database When trying to duplicate a database, while having opened connections to it, postgresql throws ``` OperationalError: source database "duplicate_test" is being accessed by other users DETAIL: There is 1 other session using the database. ``` Connections must be dropped before trying duplication using TEMPLATE to avoid this. --- openerp/service/db.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openerp/service/db.py b/openerp/service/db.py index 485a35c4abd..f5663d462b0 100644 --- a/openerp/service/db.py +++ b/openerp/service/db.py @@ -97,6 +97,7 @@ def exp_duplicate_database(db_original_name, db_name): db = openerp.sql_db.db_connect('postgres') with closing(db.cursor()) as cr: cr.autocommit(True) # avoid transaction block + _drop_conn(cr, db_original_name) cr.execute("""CREATE DATABASE "%s" ENCODING 'unicode' TEMPLATE "%s" """ % (db_name, db_original_name)) from_fs = openerp.tools.config.filestore(db_original_name)