The evolutions and DBApi are so constrained with multi-tenant applications where "Database" and "EvolutionConfig" is dynamic. We use schema-per-tenant model, every tenant will have its own database and tenant can be created dynamically (from a Super Admin UI).
At the start of the server, we would like to get all the tenants and apply evolutions onto all the tenants. Another complexity we have is, there is one single common database along with multiple tenant databases and there could be evolutions to that "common" db as well.
What we are doing currently is, we took an easy approach using "Evolutions.applyEvolutions" by providing custom "EvolutionsReader", but the limitation with this approach is we are missing all the configurable properties like "lock evolutions table" and "Don't apply Downs" etc.
We are trying to override "ApplicationEvolutions" and pass our own "Database" to "runEvolutions", unfortunately it is not "overridable".
Anyone disagree with me or any other approach you suggest?
Thanks!