Skip to content
/ crecto Public
forked from Crecto/crecto

Database wrapper for Crystal, inspired by Ecto

License

Notifications You must be signed in to change notification settings

Schniz/crecto

 
 

Repository files navigation

Crecto

crecto

https://www.crecto.com/

Build Status Join the chat at https://gitter.im/crecto/Lobby

Robust database wrapper for Crystal. Inspired by Ecto for Elixir language.

With built in query composer, associations, transactions, validations, constraints, and more.

Website with guides and examples - https://www.crecto.com/

See api docs - http://docs.crecto.com

Example

user = User.new
user.name = "Shakira"

changeset = Repo.insert(user)
changeset.errors.any?

inserted_user = changeset.instance
inserted_user.name = "Keanu"

changeset = Repo.update(user)
changeset.errors.any?

updated_user = changeset.instance

changeset = Repo.delete(updated_user)

Usage and Guides

Visit www.crecto.com

Benchmarks

Support

Buy Me A Coffee

Contributing

  1. Fork it ( https://github.com/fridgerator/crecto/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Development Notes

When developing against crecto, the database must exist prior to testing. There are migrations for each database type in spec/migrations, and references on how to migrate then in the .travis.yml file.

Create a new file spec/repo.cr and create a module name Repo to use for testing. There are example repos for each database type in the spec folder: travis_pg_repo.cr, travis_mysql_repo.cr, and travis_sqlite_repo.cr

When submitting a pull request, please test against all 3 databases.

Thanks / Inspiration

About

Database wrapper for Crystal, inspired by Ecto

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Crystal 96.4%
  • PLpgSQL 3.5%
  • Makefile 0.1%