django - 如何使用 django-simple-history 恢复更改,特别是删除

标签 django django-simple-history

我们为我们的模型设置了django-simple-history。最近一大堆模型被神秘删除。这是在事后几天注意到的,因此最好避免完整的数据库备份恢复,因为这会删除事后发生的手动更改。

我找不到任何方法来轻松恢复模型实例,特别是已删除的模型实例。我可以查询模型的历史版本并找到已删除的所有内容。由此,我还可以观察到所有这些都被删除作为最后的更改。我可以使用 History - 1 上的实例属性来获取删除之前的状态,但如果我尝试保存它,则会出错,因为模型实例已被删除并且不再存在。

所以基本上,如果我有 django-simple-history 的历史记录,恢复已删除的模型实例的最干净的方法是什么?如果可能的话,我想保留历史记录,因此在完全重新创建对象之前我正在研究任何解决方案。

最佳答案

据我了解,问题是关于恢复已删除的模型实例,而不是类本身。所以卡尔的回答在这里没有帮助。 要恢复已删除的实例,不能使用简单的历史记录。根据documentation ,简单的历史只能恢复仍然存在的模型实例。 由于您拥有数据库的完整备份,因此您可以将此数据库导入到 django 环境中,从该备份数据库加载旧模型实例并将其保存到生产数据库(通过“using”在 django shell 中选择数据库)。请参阅this邮政。 避免这种情况的最好方法是使用应用程序“reversion”。使用这个 django-app,您实际上可以恢复已删除的实例。请参阅documentation .

关于django - 如何使用 django-simple-history 恢复更改,特别是删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41731110/

相关文章:

Django 模板在静态目录中吗?

具有多个 Heroku Dynos 的 Django session

Python Django 多行形式

django - 原子事务不起作用 django rest

python - 如何从 django 上下文中读取 html 中的破折号

django-simple-history - 如何获取 django-simple-history 中最后更改的对象?

管理员中的 Django 简单历史记录

python - 如何获取修改对象的用户? Django 简单历史

python - 带索引的 Django 批量模型删除