Django和Postgres的历史跟踪

django-pghistor的Python项目详细描述


django-pghistory提供自动和可自定义的历史记录 使用 Postgres triggers。 用户可以配置多个事件跟踪器来快照每个模型 更改或以在数据库中发生某些更改时激发特定事件。在

与其他Django审计和历史跟踪应用程序相比 (见here), django-pghistory具有以下优点:

  1. 没有插入model和queryset方法来正确地 追踪历史记录。配置模型后,将跟踪事件 自动进行,代码没有其他更改。相比之下 像这样的应用程序 django-reversion, 代码不可能意外地绕过历史跟踪,而用户 不必使用特定的model/queryset接口来确保历史记录 正确跟踪。在
  2. 对数据库的批量更新和所有其他不触发的修改 Django信号仍将被正确跟踪。在
  3. 历史事件建模完全由用户控制并保留 与正在跟踪的模型同步。没有繁琐的通用外国语 键和很少依赖非结构化JSON字段来跟踪更改, 使应用程序中的历史事件更容易使用(和 以表演的方式)。在
  4. 对请求中多个对象的更改(或任何级别的粒度) 可以在同一上下文下组合在一起。虽然历史追踪 在Postgres触发器中发生时,应用程序代码仍可以附加元数据 对历史事件,如请求的URL,导致 清晰有用的审计线索。在

要开始,请阅读django-pghistory docs。文件包括如何 同时在应用程序中设置和配置自动事件跟踪 以及如何为对象聚合事件并在 管理员/应用程序。在

安装

安装django pghistory:

pip3 install django-pghistory

在此之后,将pghistory添加到INSTALLED_APPS 你的Django项目的设置。在

pghistory使用django-pgtriggerdjango-pgconnection作为 依赖关系。虽然这些是自动安装的,但用户 需要将pgtriggerpgconnection添加到 settings.INSTALLED_APPS,以及正确设置 django-pgconnectionsettings.py中,如下所示:

^{pr2}$

投稿指南

有关建立django pghistory的信息 正在参与更改,请查看CONTRIBUTING.rst。在

主要作者

  • @卫斯肯德尔

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javaelk:如何在Kibana中按异常类对stacktrace进行分组   java两个组件使用MigLayout相互重叠   java Hibernate标准获取关联实体的列表,而不是父实体的列表   从Java关闭另一个应用程序,但不是由当前Java应用程序启动   java使用OGNL获取参数   java如何在SSLEngine中启用密码TLS\U DHE\U RSA\U和\U AES\U 256\U GCM\U SHA384   在Java中有效地比较两个列表<Object[]>   java杀死挂起的线程   在java中从指定模式前后的字符串中提取子字符串   存储整数的java HashMap替代方案   java如何使用LibGDX加载特定于语言的资产?   java如何使用JSON响应从维基百科读取结构化数据   java无法连接到Spark Master:原因是:[已解除关联]   java如何配置Elastic beanstalk classic负载平衡器以使用CLI终止HTTPS   java筛网中的奥斯汀大于int   java PircBot在每个用户上迭代一组命令   java将带有Jackson的hashmap编组为XML的错误结构   testng中的java设置testfailure给出了正回报   java如何在IntelliJ中正确配置Eclipse项目?