Python 从Odoo中备份Odoo数据库

Python 从Odoo中备份Odoo数据库,python,openerp,odoo,Python,Openerp,Odoo,我需要在登录到odoo时备份当前数据库。我应该能够使用一个按钮来完成它,因此,假设我单击该按钮,它的工作方式与manage databases中的odoo默认备份相同,但我应该能够在登录时从内部完成 有没有办法做到这一点?我确实知道,使用bash在odoo外部实现这一点是可能的,但这不是我想要的。通过使用此模块,您可以定期备份数据库 (v7) 您还可以测试此模块 (v6可混装到v7) 在您的情况下,您可以添加按钮以执行将由调度程序执行的功能。您可以使用专用浏览器会话从登录屏幕访问数据库菜单,并在

我需要在登录到odoo时备份当前数据库。我应该能够使用一个按钮来完成它,因此,假设我单击该按钮,它的工作方式与manage databases中的odoo默认备份相同,但我应该能够在登录时从内部完成


有没有办法做到这一点?我确实知道,使用bash在odoo外部实现这一点是可能的,但这不是我想要的。

通过使用此模块,您可以定期备份数据库

(v7)

您还可以测试此模块

(v6可混装到v7)


在您的情况下,您可以添加按钮以执行将由调度程序执行的功能。

您可以使用专用浏览器会话从登录屏幕访问数据库菜单,并在那里执行备份表单(您需要知道主密码以访问服务器配置文件中定义的主密码).

转到您的\u odoo\u实例/web/database/manager,在那里您可以看到所有已安装的数据库:


此任务需要您定义的主密码。如果记不住,请查看服务器中的odoo.conf文件并检查“admin\u passwd”条目。

您可以从odoo中的“数据库管理”获取数据库备份

在浏览器中键入以下链接

只需在上面的链接中替换您的ip和端口,您将获得数据库管理屏幕,您可以执行以下与数据库相关的操作

  • 创造
  • 复制品
  • 下降
  • 备份
  • 密码
  • 恢复

有关备份,您可以转到此链接
http://localhost:8069/web/database/manager

  • 您可以从那里创建备份
  • 您还可以恢复先前存在的备份
重要信息
-在此之前,只需为数据库设置主密码,以避免将来的后果

如果您想在登录时更改特定型号或字段。您可以通过Odoo提供的
export/import
操作来完成。从本地导出数据后,您可以在服务器上导入数据,以便进行验证。

在某处添加一个按钮,然后调用像这样的控制器

@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

您可以使用CURL下载完整备份(assets+DB),这种方法比pg_dump更快

curl -X POST \
-F "master_pwd=${ADMIN_PASSWORD}" \
-F "name=${ODOO_DATABASE}" \
-F "backup_format=zip" \
-o ${BACKUP_DIR}/${ODOO_DATABASE}.$(date +%F-%T).zip \
${HOST}/web/database/backup

如果愿意,您可以将其封装在自定义(您自己的)Odoo附加组件中。希望这有帮助。

有很多方法可以转储ODOO的数据库。您也可以从ODOO商店下载应用程序,以便自动执行此操作。在这里,我可以建议一个插件,将做这个数据库自动备份根据您的设置月,日,小时的基础上。这是一种高度可靠和高效的方法,该模块可以在不影响odoo进程的情况下处理大型数据库。

对于v8,您可以使用该模块。感谢穆罕默德,我找到了另一种解决方法。但是,是的,这个方法看起来很有条理,第8版的方法!Mohammed您能告诉我您是如何实现备份过程自动化的吗?上述v8发动机模块不工作。ImportError:没有名为service的模块。