From edf78613bfb28826eff0fbaf5378ddde3eaf4319 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sun, 3 May 2009 14:34:47 +0200 Subject: [PATCH] Add close database for dump/restore since we keep cursors --- trytond/backend/postgresql/database.py | 2 ++ trytond/protocols/dispatcher.py | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/trytond/backend/postgresql/database.py b/trytond/backend/postgresql/database.py index 8f755c1eec..d7fd615b01 100644 --- a/trytond/backend/postgresql/database.py +++ b/trytond/backend/postgresql/database.py @@ -140,8 +140,10 @@ class Database(DatabaseInterface): cursor = database.cursor() if not cursor.test(): cursor.close() + database.close() raise Exception('Couldn\'t restore database!') cursor.close() + database.close() return True @staticmethod diff --git a/trytond/protocols/dispatcher.py b/trytond/protocols/dispatcher.py index 1b8364b4fe..ea2d1c0900 100644 --- a/trytond/protocols/dispatcher.py +++ b/trytond/protocols/dispatcher.py @@ -237,8 +237,12 @@ def drop(database_name, password): return True def dump(database_name, password): - logger = logging.getLogger('database') security.check_super(password) + Database(database_name).close() + # Sleep to let connections close + time.sleep(1) + logger = logging.getLogger('database') + data = Database.dump(database_name) logger.info('DUMP DB: %s' % (database_name)) return base64.encodestring(data)