Skip to content

First-class support for modern databases #48

Description

@ejboy

Goal

Make support for major modern relational databases explicit, current, and continuously testable.

Scriptella already has JDBC adapters for several databases, but some of this support predates current JDBC drivers and is not covered by modern integration testing. For example, the MySQL adapter still references the legacy com.mysql.jdbc.Driver class.

The goal is not to add database-specific ETL features. It is to make the existing database support reliable with current drivers and clearly define what Scriptella considers first-class support.

Initial scope

Primary targets:

  • PostgreSQL
  • MySQL
  • MariaDB

Additional targets:

  • Oracle
  • Microsoft SQL Server

For each first-class database, we should aim to provide:

  • Compatibility with a current supported JDBC driver
  • A working Scriptella driver alias and JDBC URL
  • Basic integration coverage against the real database
  • Parameterized INSERT and SELECT coverage
  • Transaction and commit coverage where applicable
  • Current documentation with driver class, JDBC URL, and classpath example
  • Clear diagnostics when the JDBC driver is missing or cannot be loaded

Known work

  • Update MySQL support for modern Connector/J (com.mysql.cj.jdbc.Driver)
  • Decide whether to retain the legacy MySQL driver class as a compatibility fallback
  • Add a dedicated MariaDB adapter using org.mariadb.jdbc.Driver
  • Validate the existing PostgreSQL adapter against a current PostgreSQL JDBC driver
  • Add integration-test infrastructure that can be reused for additional databases
  • Review Oracle and SQL Server adapters against current JDBC drivers
  • Review JDBC auto-discovery mappings for the supported databases
  • Update migration documentation and examples

Non-goals

This issue does not currently include:

  • Automatic schema migration
  • Database-specific SQL generation
  • Automatic type mapping between databases
  • Bundling vendor JDBC drivers with Scriptella
  • Connection pooling
  • A new database abstraction layer

Scriptella should continue to rely primarily on standard JDBC behavior and keep vendor-specific code minimal.

Packaging

Vendor JDBC drivers should remain external dependencies supplied by the user, for example through the connection classpath attribute.

First-class support means that Scriptella knows how to use these drivers, tests compatibility with them, and documents the supported setup. It does not mean that every vendor driver must be bundled in the Scriptella distribution.

Implementation

This issue can serve as the umbrella tracker for modern database compatibility work. Individual database changes and integration-test infrastructure can be split into focused issues and pull requests as needed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions