From 0d68d6445cfed21412ea014eb1dfd52602acb9af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Wed, 2 Sep 2009 17:41:51 +0200 Subject: [PATCH] Allow to update database at the end of restore --- CHANGELOG | 1 + trytond/protocols/dispatcher.py | 14 +++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index fcd5e3c75c..6acf96dba1 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,4 @@ +* Allow to update database at the end of restore * Add ir.model.access check get and set of ir.property * Add ModelSingleton * Move login test in res.user diff --git a/trytond/protocols/dispatcher.py b/trytond/protocols/dispatcher.py index c61bb47383..8688478bd6 100644 --- a/trytond/protocols/dispatcher.py +++ b/trytond/protocols/dispatcher.py @@ -255,7 +255,7 @@ def dump(database_name, password): logger.info('DUMP DB: %s' % (database_name)) return base64.encodestring(data) -def restore(database_name, password, data): +def restore(database_name, password, data, update=False): logger = logging.getLogger('database') security.check_super(password) try: @@ -268,4 +268,16 @@ def restore(database_name, password, data): data = base64.decodestring(data) Database.restore(database_name, data) logger.info('RESTORE DB: %s' % (database_name)) + if update: + cursor = Database(database_name).connect().cursor() + cursor.execute('SELECT code FROM ir_lang ' \ + 'WHERE translatable') + lang = [x[0] for x in cursor.fetchall()] + cursor.execute('UPDATE ir_module_module SET ' \ + "state = 'to upgrade' " \ + "WHERE state = 'installed'") + cursor.commit() + cursor.close() + Pool(database_name).init(update=update, lang=lang) + logger.info('Update/Init succeed!') return True