| CARVIEW |
persistent-audit: Parses a Persist Model file and produces Audit Models
Modules
- Database
- Persist
- Audit
- Database.Persist.Audit.Class
- Database.Persist.Audit.Generator
- MongoDB
- Database.Persist.Audit.MongoDB.Util
- Database.Persist.Audit.Queries
- Database.Persist.Audit.Types
- Audit
- Persist
Downloads
- persistent-audit-0.2.0.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
| Versions [RSS] | 0.1.0.0, 0.1.0.1, 0.1.0.2, 0.1.0.3, 0.2.0.0 |
|---|---|
| Change log | ChangeLog.md |
| Dependencies | aeson, attoparsec, base (>=4.8 && <5), bytestring, getopt-generics, hashable, mongoDB, persistent (>=2.2), persistent-audit, persistent-mongoDB, persistent-parser (>=0.1 && <0.2), persistent-template, text, time, transformers, unordered-containers [details] |
| License | BSD-3-Clause |
| Author | James M.C. Haver II |
| Maintainer | mchaver@gmail.com |
| Uploaded | by mchaver at 2016-09-08T04:56:34Z |
| Category | Database, Yesod, Persistent |
| Source repo | head: git clone https://github.com/mchaver/persistent-audit |
| Distributions | |
| Executables | persistent-audit |
| Downloads | 3139 total (19 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating |
|
| Status | Docs not available [build log] All reported builds failed as of 2016-11-20 [all 3 reports] |
Readme for persistent-audit-0.2.0.0
[back to package description]persistent-audit
This package includes an executable that takes a Persistent models (tables) file and returns a Persistent models file with audit models (tables) for each individual table in the original file. It can optionally return a file with an implementation of the ToAudit class for each pair of model and its audit model. The automatically produced audit model files and ToAudit instances are a best attempt and will not necessarily compile without editing. If you are interested in having different styles of Audit models supported or find any bugs, please inform me. It currently supports Persistent >= 2.2 && <= 2.5.
The executable can be run like this:
cabal run -- -m models -a auditModels
It can also parse Haskell files that have Persist model QuasiQuoters [persistLowerCase||] and [persistUpperCase||]:
cabal run -- -m Models.hs -a auditModels
And if you want the optional ToAudit implementation:
cabal run -- -m models -a auditModels -i ToAuditInstances.hs
It can also help you build Audit Models that will be used in a separate database (MongoDB to SQL or SQL to MongoDB) by converting MongoDB keys to Bytestring or SQL keys to Int64.
cabal run -- -m models -a auditModels -i ToAuditInstances.hs -c mongoDbToSql
cabal run -- -m models -a auditModels -i ToAuditInstances.hs -c sqlToMongoDb
You can also use this as a library for the following purporses:
- To parse Persistent model files
- To generate Audit Models from other Models
- To generate
ToAuditinstances - Use query functions from
Database.Persist.Audit.Queries:insertAndAudit,deleteAndAudit,deleteWhereAndAudit,updateAndAudit,updateWhereAndAudit,insertUniqueAndAudit,deleteByAndAudit,repsertAndAudit,replaceAndAudit
This package is originally based on this article Maintaining a Log of Database Changes. Specifically, the first example: 'A Separate "History" Table for Each Table Being Audited'.