Packages
paper_trail
0.7.3
1.1.2
1.1.1
1.1.0
1.0.0
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.13.0
0.12.4
0.12.3
0.12.2
0.12.1
0.12.0
0.11.3
0.11.2
0.11.1
0.11.0
0.10.1
0.10.0
0.9.0
0.8.8
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.9
0.7.8
0.7.7
0.7.6
0.7.5
0.7.4
0.7.3
0.7.2
0.7.0
0.6.3
0.6.2
0.6.1
0.6.0
0.5.3
0.5.2
0.5.0
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
0.0.9
0.0.8
0.0.7
0.0.6
0.0.5
0.0.4
0.0.3
0.0.2
0.0.1
Track and record all the changes in your database. Revert back to anytime in history.
Current section
Files
Jump to
Current section
Files
lib/version.ex
defmodule PaperTrail.Version do
use Ecto.Schema
import Ecto.Changeset
import Ecto.Query
@setter PaperTrail.RepoClient.originator || nil
schema "versions" do
field :event, :string
field :item_type, :string
field :item_id, :integer
field :item_changes, :map
field :originator_id, :integer
field :origin, :string, read_after_writes: true
field :meta, :map
if @setter do
belongs_to @setter[:name], @setter[:model], define_field: false, foreign_key: :originator_id
end
timestamps(updated_at: false)
end
def changeset(model, params \\ :empty) do
model
|> cast(params, [:item_type, :item_id, :item_changes, :origin, :originator_id, :meta])
|> validate_required([:event, :item_type, :item_id, :item_changes])
end
def count do
from(version in __MODULE__, select: count(version.id)) |> PaperTrail.RepoClient.repo.one
end
end