Резервное копирование Odoo db из odoo
Мне нужно создать резервную копию текущей БД при входе в odoo. Я должен быть в состоянии сделать это с помощью кнопки, так что, предположим, я нажму на кнопку, она работает так же, как резервное копирование по умолчанию odoo в управлении базами данных, но я должен быть в состоянии сделать это изнутри во время входа в систему.
есть ли способ этого добиться? Я знаю, что это возможно извне odoo, используя bash, но это не то, что я хочу.
6 ответов
с помощью этого модуля вы можете периодически создавать резервные копии базы данных
https://www.odoo.com/apps/modules/7.0/crontab_config/ (v7)
вы также можете проверить этот модуль
https://www.odoo.com/apps/modules/6.1/db_backup_ept/ (V6 он может быть miggrated до V7)
в вашем случае вы можете добавить кнопку для выполнения функции, которая будет выполняться schedular.
вы можете использовать частный сеанс браузера для доступа к меню базы данных с экрана входа в систему и выполнить там форму резервного копирования (вам нужно знать главный пароль для доступа к нему, определенный в файле конфигурации сервера).
вы можете взять резервную копию базы данных из "управление базами данных" в с..
введите следующую ссылку в браузере,
http://localhost:8069/web/database/manager
просто замените свой ip и порт в aboves link, Вы получите экран для управления базой данных, вы можете выполнять следующие операции, связанные с базой данных
- создать
- дублировать
- падение
- резервное копирование
- пароль
- восстановить
на your_odoo_instance / web / база данных / менеджер где можно увидеть все установленные базы данных:
менеджер баз данных Odoo-резервное копирование
для этой задачи вам понадобится определенный мастер-пароль. Если вы не можете вспомнить его, посмотреть на ваши с.файл conf на сервере и проверьте admin_passwd входа.
добавьте кнопку где-нибудь и вызовите контроллер, подобный этому.
@http.route('/backup/download', auth="user", type='http')
def backup(self, **kw):
ts = datetime.datetime.utcnow().strftime("%Y-%m-%d_%H-%M-%S")
filename = "%s_%s.zip" % (request.env.cr.dbname, ts)
headers = [
('Content-Type', 'application/octet-stream; charset=binary'),
('Content-Disposition', content_disposition(filename)),
]
dump_stream = db.dump_db(request.env.cr.dbname, None)
response = werkzeug.wrappers.Response(dump_stream, headers=headers, direct_passthrough=True)
return response
для резервного копирования, вы можете пройти по этой ссылке http://localhost:8069/web/database/manager
.
- вы можете создать резервную копию оттуда.
- вы также можете восстановить существующую резервную копию.
Important
- до этого просто установите мастер-пароль для вашей базы данных, чтобы избежать последствий в будущем.
Если вы хотите изменить определенные модели или поля во время входа в систему. Вы можете сделать это с помощью export/import
действие, предоставляемое Odoo. После экспорта данных из локального вы можете импортировать его на свой сервер, для этого вам нужно его проверить.