README.md

# 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)