crecto

Database wrapper, based on Ecto postgres database-wrapper mysql ecto database orm orm-framework
0.9.0 released
Crecto/crecto
342 43 20
Crecto

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

crecto:
  github: Crecto/crecto
  version: ~> 0.9.0
License MIT
Crystal none

Authors

Dependencies 1

  • db ~> 0.5.0
    {'github' => 'crystal-lang/crystal-db', 'version' => '~> 0.5.0'}

Development Dependencies 3

  • mysql 0.5.0
    {'github' => 'crystal-lang/crystal-mysql', 'version' => '0.5.0'}
  • pg 0.15.0
    {'github' => 'will/crystal-pg', 'version' => '0.15.0'}
  • sqlite3 0.10.0
    {'github' => 'crystal-lang/crystal-sqlite3', 'version' => '0.10.0'}
Last synced .
search fire star recently