crecto
Crecto
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://crecto.dev/
See api docs - https://crecto.dev
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 https://crecto.dev/
Benchmarks
Contributing
- Fork it ( https://github.com/fridgerator/crecto/fork )
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- 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
- 0
- 0
- 0
- 4
- 4
- 4 months ago
- May 28, 2023
MIT License
Wed, 06 Nov 2024 20:47:07 GMT