Files
nairobi/db/migrate/20191102002206_install_audited.rb
Javi Martín ed223e0bd1 Use audited to track investment changes
Our manual implementation had a few issues. In particular, it didn't
track changes related to associations, which became more of an issue
when we made investments translatable.

Using audited gives us more functionality while at the same time
simplifies our code. However, it adds one more external dependency to
our project.

The reason for choosing audited over paper trail is audited seems to
make it easier to handle associations.
2019-11-05 13:02:37 +01:00

27 lines
972 B
Ruby

class InstallAudited < ActiveRecord::Migration[5.0]
def change
create_table :audits, force: true do |t|
t.column :auditable_id, :integer
t.column :auditable_type, :string
t.column :associated_id, :integer
t.column :associated_type, :string
t.column :user_id, :integer
t.column :user_type, :string
t.column :username, :string
t.column :action, :string
t.column :audited_changes, :jsonb
t.column :version, :integer, default: 0
t.column :comment, :string
t.column :remote_address, :string
t.column :request_uuid, :string
t.column :created_at, :datetime
end
add_index :audits, [:auditable_type, :auditable_id, :version], name: "auditable_index"
add_index :audits, [:associated_type, :associated_id], name: "associated_index"
add_index :audits, [:user_id, :user_type], name: "user_index"
add_index :audits, :request_uuid
add_index :audits, :created_at
end
end