crecto

Database wrapper, based on Ecto postgres database-wrapper mysql ecto database orm orm-framework
0.12.1 Latest release released
Crecto/crecto
335 42 25
Crecto

This REPO is not actively maintained. Crecto is works with Crystal 1.0. Please contact me or create an issue if you would like to take over as maintainer of 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

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.12.1
License MIT
Crystal >= 1.0.0, < 2.0.0

Authors

Dependencies 1

  • db
    {'github' => 'crystal-lang/crystal-db'}

Development Dependencies 3

  • mysql ~> 0.13.0
    {'github' => 'crystal-lang/crystal-mysql', 'version' => '~> 0.13.0'}
  • pg ~> 0.23.2
    {'github' => 'will/crystal-pg', 'version' => '~> 0.23.2'}
  • sqlite3 ~> 0.18.0
    {'github' => 'crystal-lang/crystal-sqlite3', 'version' => '~> 0.18.0'}
Last synced .
search fire star recently