Search code examples
databasedjangoauditaudit-trailreversion

django AuditTrail vs Reversion


I am working on an new web app I need to store any changes in database to audit table(s). Purpose of such audit tables is that later on in a real physical audit we can asecertain what happened in a situation, who edited what and what was the state of db at the time of e.g. a complex calculation. So mostly audit table will be written and not read. Report may be generated though sometimes.

I have looked for available solution

  1. AuditTrail - simple and that is why I am inclining towards it, I can understand it single file code.
  2. Reversion - looks simple enough to use but not sure how easy it would be to modify it if needed.
  3. rcsField seems to be very complex and too much for my needs

I haven't tried anyone of these, so I wanted to know some real experiences and which one I should be using. e.g. which one is faster uses less space, easy to extend and maintain?


Solution

  • As i stated in my question rcField seems to be to much for my needs, which is simple that i want store any changes to my table, and may be come back later to those changes to generate some reports.

    So I tested AuditTrail and Reversion Reversion seems to be a better full blown application with many features(which i do not need), Also as far as i know it saves data in a single table in XML or YAML format, which i think

    1. will generate too much data in a single table
    2. to read that data I may not be able to use already present db tools.

    AuditTrail wins in that regard that for each table it generates a corresponding audit table and hence changes can be tracked easily, per table data is less and can be easily manipulated and user for report generation.

    So i am going with AuditTrail.