Hi Lukas,

This discussion stems from what was said on schema validators:
https://github.com/jOOQ/jOOQ/issues/2476

In short: how does jOOQ help when we want/need multiple database support?

When using jOOQ, the sequence seems to be:
1. Have a database with a particular schema.
2. Generate a JOOQ model for that database.
3. Use JOOQ API to execute request using the dialect of the database.

I see several cases where multiple database support can be of interest:
1. When the application is installed on existing client systems and we
offer multiple tested possibilities (like SQL Server, Oracle, MySQL).
2. When having a production database and mock database for testing (SQL
Server and H2).
3. When we have a single production database but don't want to get too tied
in case we have to switch in the future (develop for MySQL, but don't want
to close the door for a switch to MariaDB or Postgres).

In such a multi database scenario, the sequence is more:
1. Use a model that is not too tied to a particular database.
2. Use a generic SQL API that knows the dialect of the database to adapt
types (e.g. boolean), with occasional dialect specific operations.

Currently, and correct me if I am wrong, jOOQ does not allow flexibility of
the database type that it is working on because the model comes from an
actual database. I wonder if jOOQ could add support for that scenario, or
could make official some best practices to simplify such support.

So the first thing is to define which SQL types are garanteed to work on
all databases. This can be done by documenting a particular subset of
existing SQL types that are supported on all databases, or have new
datatypes (conceptual types) that jOOQ can map to real types on whatever
database.

The next step is how to generate the model because in multiple database
developement, a specific database schema is generally not the source. If
jOOQ allowed to create a representation of a database structure from which
the model is generated, that structure could easily be created by code.
Could that also be the purpose of:
https://github.com/jOOQ/jOOQ/issues/2371? If so, can we create such
structure programmatically and generate the
model from it?
Developers could even base part of the database creation from that
structure they defined programmatically.

Cheers,
-Christopher

-- 
You received this message because you are subscribed to the Google Groups "jOOQ 
User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to