Truly Dynamic DB connection parameters

Because implementing everything on a higher level allow us to have more control on the implementation internals, without the need to constantly rewrite code. Also supporting multiple platforms is easier because the workflows are the same. Only the implementation runtime is different.

Downside is indeed that we have to support features that are possible by all platforms and that can be limiting. But we can have exceptions per platform and implement platform specific functionality.

In light of a generic database schema migrator, it will be very profitable to have it also generic on meta level because of the different databases that it can run on. Those can have different database engines, supporting different sql standards.

So by having the database migration all on a higher abstract level, we can fully control how it gets executed and react in case of errors.

This is difficult for example now with the Knex migrations that we use because each migration is just a JavaScript code that we generate one time and we can’t enhance it later without fully rebuilding as well if some errors occur the code might get half executed leaving the schema in half updated way which can result in more subsequent errors.

4 Likes