krop
krop copied to clipboard
Database Integration
We want to make databases easy to use, but we don't want to implement everything ourselves. Here are some of the tasks:
- Decide on database library to use. We currently use Magnum, as it provides more ease of use than Doobie. Specifically the
Repotypes provide many standard queries, though it doesn't do table creation. However Magnum doesn't appear to support Cats as well as Doobie. Could Magnum features be easily added to Doobie, or will Magnum improve its support for Cats? - We need to support migrations, a subset of which is creating tables. We can use Flyway to get started, but ultimately it would be nice to replace it. We'd ideally like something that ties migrations to the table definitions used in code, and something that has more types rather than text files.
- We need conventions for database configuration and for specifying database models
- We need conventions for running database migrations