在 django 视图上触发数据库备份

Trigger database backup on a django view

我正在尝试通过我在 Django 中创建的自定义视图中的按钮触发数据库备份。问题是,在我找到的有关数据库备份的所有信息中,该命令是自动触发的或来自 manage.py 命令。

有什么解决办法吗?甚至可以从视图中执行 manage.py 命令?

是的,可以从视图中执行 manage.py 命令。查看 Django 文档中的 this 部分。

但真正的问题是你是否应该这样做。备份数据库需要时间,在视图中执行任何命令都会强制 django 等待该命令完成,然后再将响应发送回浏览器。在那个执行时间内,您的一名工作人员会很忙,不会接受任何请求。

如果您错误地多次执行您的视图,您可以阻止所有工作人员,这样在备份完成之前您的网站将无法访问。

考虑使用一些卸载或后台任务,例如 Celery, uWSGI spooler,或者干脆不为此使用视图。