Andreas Svanberg 5fbf4ec0c0 Switch from an in-memory HSQLDB to MariaDB during integration tests ()
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: 
Reviewed-by: Nico Athanassiadis <nico@dsv.su.se>
2024-12-16 13:55:33 +01:00
..