8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

RailsでAuditedとPaperTrailのどちらを導入すべきか

Posted at
  • 実際に選定してみた際に悩んだので、記事化

この記事の内容

  • RailsのgemのAuditedPaperTrailとは
  • AuditedPaperTrailの違い
  • おすすめのユースケース

AuditedPaperTrailとは

  • データの変更履歴やバージョンを管理するためのパッケージ
  • 誰がどのレコードをどのように変更したかの履歴を自動的に保存してくれる
  • 必要になるユースケースとしては、以下のような場合がある
    • プロフィールなど、変更記録を含めた検索をしたい
    • qitaの記事など、一回の編集量が多いデータの履歴を管理したい
    • 誰が変更したかが重要なデータ
      • 特にお金が関わる時!
  • ↓がソース!

AuditedPaperTrailの比較

Auditedのメリット

  • 誰が変更したかをテーブル単位でデータが取れる
    • ログインできるモデルが複数ある場合に有効
      • UserテーブルとAdminテーブルで切り分けているなど
    • 誰が変更したかはリレーションだけではなく、文字列でも残せる
  • 変更のBeforeとAfterが1レコードになる
    • 変更内容の監視が可能
    • DBから変更記録を追う際に、便利
  • 変更時にコメントを残せる
  • 変更リクエストのIPアドレスを自動で取得する

PaperTrailのメリット

  • バージョン管理がしやすい
    • 〇〇日に変更した内容などの記録が楽
    • モデルごとにバージョン管理用のテーブルが作れる
    • パッケージに、全変更履歴を取るためのメソッドが用意されている
    • 最新3バージョンまで保持するなどの管理がしやすい
  • DBに入る実際の値をカスタマイズしやすい
    • get startedにカスタマイズ方法が記載されている

結論

  • PaperTrailはバージョン管理に特化している
    • diffを見る
    • 〇〇日のバージョンを戻す、など
  • Auditedは監査用のログを管理する用途に特化している
    • 誰が〇〇日にどのデータをどのように変更したか、など

オススメのユースケース

  • PaperTrailにオススメ
    • 履歴を含めた検索をしたい場合
    • ユーザーがデータのバージョンを確認したい場合
  • Auditedにオススメ
    • 変更履歴を管理したい場合
8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?