# Elixir Rivets — Data Model Framework
***This project is still a "Work in Progress" and not ready for GA***
[Rivets](https://docs.google.com/document/d/1ntoTA9YRE7KvKpmwZRtfzKwTZNgo2CY6YfJnDNQAlBc) is an opinionated framework for managing data models in Elixir.
`Rivet` is a series of helper libraries for elixir applications wanting help in their Rivets projects.
Library Contributors: Mark Erickson, Brandon Gillespie, Lyle Mantooth, Jake Wood
Look in module docs lib/mix/tasks/index.ex for command syntax
## TODO
we need this somewhere global :smile: I use the latter logic in guards all the time.
* make a default test for mapping tables that doesn't use '.id', and perhaps a
--mapping flag or similar to note this
* migrate should print what its doing
* running 'mix rivet new model' prints 'creating' in _build folder even though it
ends up in the right place, but this is odd. Also gets "model already exists..."
error.
Model already exists in `/.../src/_build/dev/lib/core/priv/rivet/migrations/migrations.exs`, not adding
but it isn't in migrations.exs... so something is wrong
* adding new model isn't added to parent index
* running from within umbrella is hairy. Just run commands from within the sub-app, instead of top of umbrella, for now
* configurable table prefixes in db schema
* maturing command set (see mix rivet help)
* tighter integration w/Ecto (see prior)
* mix rivet migrate is silent, need to get it noisy like typical ecto.migrate
* tests are currently going into path/model/model_test; should just be path/model_test
* default model shouldn't create so many things
## How to use?
See rivet-ident for a project using the Rivets Framework.
You can bring the rivet-ident into YOUR project as a dependency (see notes on that project for more details)