[IMP] database management: added `duplicate` operation.
bzr revid: vmt@openerp.com-20121019101349-dt43p6da7avdsmk2
This commit is contained in:
parent
5b166040b1
commit
e0e1aa5d15
|
@ -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]
|
||||
|
|
Loading…
Reference in New Issue