Python 是否可以将django简单历史重播到特定ID以恢复删除数据库?

Python 是否可以将django简单历史重播到特定ID以恢复删除数据库?,python,django,database,postgresql,django-models,Python,Django,Database,Postgresql,Django Models,情况是: 我使用django,特别是django simple history开发了一个Web应用程序。 我有一个postgres数据库db01,其中有一个历史模型db01_history,它是使用django simple history生成/填充的。 我无意中删除了db01中的所有内容,遗憾的是,我没有任何数据库备份 我的问题是: 是否有某种方法可以将所有历史记录db01_history重播到原始数据库db01上,直到特定ID? 换句话说,有没有一种方法可以使用数据库的历史模型将数据库恢复到

情况是:

我使用django,特别是django simple history开发了一个Web应用程序。 我有一个postgres数据库db01,其中有一个历史模型db01_history,它是使用django simple history生成/填充的。 我无意中删除了db01中的所有内容,遗憾的是,我没有任何数据库备份

我的问题是: 是否有某种方法可以将所有历史记录db01_history重播到原始数据库db01上,直到特定ID? 换句话说,有没有一种方法可以使用数据库的历史模型将数据库恢复到特定的日期/ID


幸运的是,django simple history一直使用您自己模型的字段名和类型,但没有保留一些约束

不同之处在于,每个已删除对象都有多个历史对象。如果您使用Django默认主键id,您就可以很容易地按id对表进行分组,并使用截至历史日期的最新记录,即记录历史的时间

一个例外是,如果您使用更直接的数据库操作,如模型管理器中的更新或批量创建,则您没有它们的历史记录

因此,您可以将项目配置为使用历史数据库的副本,该副本仅包含每个对象的最新记录,然后尝试执行python manage.py dumpdata>dump.json,然后将数据库设置还原为您喜欢的新数据库,并执行python manage.py loaddata dump.json


简而言之,是的,您的历史数据库中可能有您的所有数据

谢谢你的建议!我能够使用dumpdata命令提取历史数据,然后过滤json文件中的数据以重新导入丢失的数据!