Ecto审计库ExAudit安装与使用指南

Ecto审计库ExAudit安装与使用指南

1. 项目目录结构及介绍

ExAudit是一个用于Ecto的审计库,它能够透明地追踪数据库实体的变化并支持回滚。以下是项目的基本目录结构及其简介:

ZennerIoT/ex_audit
├── config          - 配置文件夹,存放应用配置。
│   └── config.exs   - 主配置文件,用于定义跟踪的ecto仓库、版本模式等。
├── examples         - 示例代码,展示如何使用ExAudit。
├── lib              - 库代码,ExAudit的核心逻辑所在。
│   ├── ex_audit.ex   - 主入口模块,包含主要函数和行为定义。
│   └── ...           - 其他辅助模块。
├── priv             - 私有数据,通常包括数据库迁移脚本。
│   └── repo          - 存放具体的数据库迁移文件。
├── test             - 单元测试,确保库的各个功能正常工作。
│   ├── ex_audit_tests.exs - ExAudit的功能测试案例。
│   └── ...
├── .formatter.exs   - 代码格式化配置。
├── .gitignore       - Git忽略文件配置。
├── LICENSE          - 许可证文件,MIT许可协议。
└── README.md        - 项目的主要说明文档,包含快速入门和主要特性介绍。

2. 项目的启动文件介绍

在Ecto环境中,并没有一个直接的“启动文件”适用于ExAudit。然而,要启用ExAudit的功能,关键在于正确配置你的Ecto仓库模块和应用程序的配置。你需要在你的应用程序中修改或添加以下部分来集成ExAudit:

  • 在你的config/config.exs中配置ExAudit,这涉及到指定被跟踪的Ecto仓库、版本模式以及可选的跟踪模式。

  • 修改Ecto仓库模块(例如MyApp.Repo),引入ExAudit.Repo行为:

    defmodule MyApp.Repo do
      use Ecto.Repo, otp_app: :my_app
      adapter: Ecto.Adapters.Postgres
      use ExAudit.Repo
    end
    

ExAudit的激活并非通过单独的启动文件完成,而是通过以上步骤整合进你的Ecto栈并在每次调用相应仓储方法时自动工作。

3. 项目的配置文件介绍

配置ExAudit主要是通过config/config.exs来实现。在这个文件中,你需要添加或调整如下设置:

config :ex_audit,
  ecto_repos: [MyApp.Repo],         # 定义受监视的Ecto仓库
  version_schema: MyApp.Version,     # 版本模式的模块名
  tracked_schemas: [
    MyApp.Accounts.User,
    MyApp.BlogPost,
    MyApp.Comment
  ],                                 # 指定要跟踪变化的实体模式
  primitive_structs: [Date]          # 可选,定义作为原始类型处理的结构体,不进一步拆分审计

这里:

  • ecto_repos: 列出所有希望启用ExAudit的Ecto仓库模块。
  • version_schema: 指向存储审计信息的版本模式模块。
  • tracked_schemas: 明确指出哪些Ecto模式应该被跟踪其变更。
  • primitive_structs: 是一个可选列表,指定了哪些类型被视为原生类型,以影响它们如何在审计记录中表示。

通过这样的配置,ExAudit将按需在指定的Ecto操作中自动捕捉实体的变化,并按照预设的规则存储这些历史记录。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值