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),仅供参考



