[IMP] database management: added `duplicate` operation.

bzr revid: vmt@openerp.com-20121019101349-dt43p6da7avdsmk2
This commit is contained in:
Vo Minh Thu 2012-10-19 12:13:49 +02:00
parent 5b166040b1
commit e0e1aa5d15
1 changed files with 12 additions and 1 deletions

View File

@ -103,7 +103,7 @@ class db(netsvc.ExportService):
if method in [ 'create', 'get_progress', 'drop', 'dump',
'restore', 'rename',
'change_admin_password', 'migrate_databases',
'create_database' ]:
'create_database', 'duplicate_database' ]:
passwd = params[0]
params = params[1:]
security.check_super(passwd)
@ -157,6 +157,17 @@ class db(netsvc.ExportService):
_initialize_db(self, id, db_name, demo, lang, user_password)
return True
def exp_duplicate_database(self, db_original_name, db_name):
_logger.info('Duplicate database %s', db_name.lower())
db = sql_db.db_connect('postgres')
cr = db.cursor()
try:
cr.autocommit(True) # avoid transaction block
cr.execute("""CREATE DATABASE "%s" ENCODING 'unicode' TEMPLATE "%s" """ % (db_name, db_original_name))
finally:
cr.close()
return True
def exp_get_progress(self, id):
if self.actions[id]['thread'].isAlive():
# return openerp.modules.init_progress[db_name]