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
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)
Visit www.crecto.com
When developing against crecto, the database must exist prior totesting. 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.