odoorpc.db¶
Provide the DB class to manage the server databases.
- 
class odoorpc.db.DB(odoo)¶
- The DB class represents the database management service. It provides functionalities such as list, create, drop, dump and restore databases. - Note - This service have to be used through the - odoorpc.ODOO.dbproperty.- >>> import odoorpc >>> odoo = odoorpc.ODOO('localhost') >>> odoo.db <odoorpc.db.DB object at 0x...> - 
change_password(password, new_password)¶
- Change the administrator password by new_password. - >>> odoo.db.change_password('super_admin_passwd', 'new_admin_passwd') - The super administrator password is required to perform this method. - Python 2: - Raise: - odoorpc.error.RPCError(access denied)- Raise: - urllib2.URLError (connection error) - Python 3: - Raise: - odoorpc.error.RPCError(access denied)- Raise: - urllib.error.URLError (connection error) 
 - 
create(password, db, demo=False, lang='en_US', admin_password='admin')¶
- Request the server to create a new database named db which will have admin_password as administrator password and localized with the lang parameter. You have to set the flag demo to True in order to insert demonstration data. - >>> odoo.db.create('super_admin_passwd', 'prod', False, 'fr_FR', 'my_admin_passwd') - If you get a timeout error, increase this one before performing the request: - >>> timeout_backup = odoo.config['timeout'] >>> odoo.config['timeout'] = 600 # Timeout set to 10 minutes >>> odoo.db.create('super_admin_passwd', 'prod', False, 'fr_FR', 'my_admin_passwd') >>> odoo.config['timeout'] = timeout_backup - The super administrator password is required to perform this method. - Python 2: - Raise: - odoorpc.error.RPCError(access denied)- Raise: - urllib2.URLError (connection error) - Python 3: - Raise: - odoorpc.error.RPCError(access denied)- Raise: - urllib.error.URLError (connection error) 
 - 
drop(password, db)¶
- Drop the db database. Returns True if the database was removed, False otherwise (database did not exist): - >>> odoo.db.drop('super_admin_passwd', 'test') True - The super administrator password is required to perform this method. - Python 2: - Returns: - True or False - Raise: - odoorpc.error.RPCError(access denied)- Raise: - urllib2.URLError (connection error) - Python 3: - Returns: - True or False - Raise: - odoorpc.error.RPCError(access denied)- Raise: - urllib.error.URLError (connection error) 
 - 
dump(password, db, format_='zip')¶
- Backup the db database. Returns the dump as a binary ZIP file containing the SQL dump file alongside the filestore directory (if any). - >>> dump = odoo.db.dump('super_admin_passwd', 'prod') - If you get a timeout error, increase this one before performing the request: - >>> timeout_backup = odoo.config['timeout'] >>> odoo.config['timeout'] = 600 # Timeout set to 10 minutes >>> dump = odoo.db.dump('super_admin_passwd', 'prod') >>> odoo.config['timeout'] = timeout_backup - Write it on the file system: - >>> with open('dump.zip', 'wb') as dump_zip: ... dump_zip.write(dump.read()) ... - You can manipulate the file with the zipfile module for instance: - >>> import zipfile >>> zipfile.ZipFile('dump.zip').namelist() ['dump.sql', 'filestore/ef/ef2c882a36dbe90fc1e7e28d816ad1ac1464cfbb', 'filestore/dc/dcf00aacce882bbfd117c0277e514f829b4c5bf0', ...] - The super administrator password is required to perform this method. - Python 2: - Returns: - io.BytesIO - Raise: - odoorpc.error.RPCError(access denied / wrong database)- Raise: - urllib2.URLError (connection error) - Python 3: - Returns: - io.BytesIO - Raise: - odoorpc.error.RPCError(access denied / wrong database)- Raise: - urllib.error.URLError (connection error) 
 - 
duplicate(password, db, new_db)¶
- Duplicate db’ as `new_db. - >>> odoo.db.duplicate('super_admin_passwd', 'prod', 'test') - The super administrator password is required to perform this method. - Python 2: - Raise: - odoorpc.error.RPCError(access denied / wrong database)- Raise: - urllib2.URLError (connection error) - Python 3: - Raise: - odoorpc.error.RPCError(access denied / wrong database)- Raise: - urllib.error.URLError (connection error) 
 - 
list()¶
- Return the list of the databases: - >>> odoo.db.list() ['prod', 'test'] - Python 2: - Returns: - list of database names - Raise: - urllib2.URLError (connection error) - Python 3: - Returns: - list of database names - Raise: - urllib.error.URLError (connection error) 
 - 
restore(password, db, dump, copy=False)¶
- Restore the dump database into the new db database. The dump file object can be obtained with the - dumpmethod. If copy is set to True, the restored database will have a new UUID.- >>> odoo.db.restore('super_admin_passwd', 'test', dump_file) - If you get a timeout error, increase this one before performing the request: - >>> timeout_backup = odoo.config['timeout'] >>> odoo.config['timeout'] = 7200 # Timeout set to 2 hours >>> odoo.db.restore('super_admin_passwd', 'test', dump_file) >>> odoo.config['timeout'] = timeout_backup - The super administrator password is required to perform this method. - Python 2: - Raise: - odoorpc.error.RPCError(access denied / database already exists)- Raise: - odoorpc.error.InternalError(dump file closed)- Raise: - urllib2.URLError (connection error) - Python 3: - Raise: - odoorpc.error.RPCError(access denied / database already exists)- Raise: - odoorpc.error.InternalError(dump file closed)- Raise: - urllib.error.URLError (connection error) 
 
- 
