Резервное копирование 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- до этого просто установите мастер-пароль для вашей базы данных, чтобы избежать последствий в будущем.

enter image description here Если вы хотите изменить определенные модели или поля во время входа в систему. Вы можете сделать это с помощью export/import действие, предоставляемое Odoo. После экспорта данных из локального вы можете импортировать его на свой сервер, для этого вам нужно его проверить. enter image description here