ecto_trail v0.2.0 EctoTrail
EctoTrail allows to store changeset changes into a separate audit_log
table.
Usage
Add
ecto_trail
to your list of dependencies inmix.exs
:def deps do [{:ecto_trail, “~> 0.1.0”}] end
Ensure
ecto_trail
is started before your application:def application do [extra_applications: [:ecto_trail]] end
Add a migration that creates
audit_log
table topriv/repo/migrations
folder:defmodule EctoTrail.TestRepo.Migrations.CreateAuditLogTable do @moduledoc false use Ecto.Migration
def change do
create table(:audit_log, primary_key: false) do add :id, :uuid, primary_key: true add :actor_id, :string, null: false add :resource, :string, null: false add :resource_id, :string, null: false add :changeset, :map, null: false timestamps([type: :utc_datetime, updated_at: false]) end
end end
Use
EctoTrail
in your repo:defmodule MyApp.Repo do use Ecto.Repo, otp_app: :my_app use EctoTrail end
Use logging functions instead of defaults. See
EctoTrail
module docs.