Currently our integration tests run against an in-memory HSQLDB whose schema is created by Hibernate based on our JPA annotations. This has differences from the MariaDB schema created by our Flyway migrations. It is also a completely different database engine so who knows what other differences there are.
This proposal changes this so that it will instead use [Testcontainers](https://testcontainers.com/) to spin up a MariaDB Docker container that then has the Flyway migrations ran before being used in tests.
Pros:
* Same database engine in tests as production
* Flyway migrations are tested
* Database schema is the same in tests as production (`NOT NULL` constraints, foreign keys, and so on)
Cons:
* *Much* slower test executions and they will get slower over time as more migrations are added
Co-authored-by: Nico Athanassiadis <nico@dsv.su.se>
Reviewed-on: #57
Reviewed-by: Nico Athanassiadis <nico@dsv.su.se>