Class BaseDatabaseType

java.lang.Object
migratedb.v1.core.internal.database.base.BaseDatabaseType
All Implemented Interfaces:
DatabaseType
Direct Known Subclasses:
BigQueryDatabaseType, CockroachDBDatabaseType, DB2DatabaseType, DerbyDatabaseType, FirebirdDatabaseType, H2DatabaseType, HSQLDBDatabaseType, IgniteThinDatabaseType, InformixDatabaseType, MariaDBDatabaseType, MySQLDatabaseType, OracleDatabaseType, PostgreSQLDatabaseType, RedshiftDatabaseType, SAPHANADatabaseType, SnowflakeDatabaseType, SpannerDatabaseType, SQLiteDatabaseType, SQLServerDatabaseType, SybaseASEJConnectDatabaseType, SybaseASEJTDSDatabaseType, TestContainersDatabaseType

public abstract class BaseDatabaseType extends Object implements DatabaseType
  • Constructor Details

    • BaseDatabaseType

      public BaseDatabaseType()
  • Method Details

    • getName

      public abstract String getName()
      Specified by:
      getName in interface DatabaseType
      Returns:
      The human-readable name for this database.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getNullType

      public abstract int getNullType()
      Specified by:
      getNullType in interface DatabaseType
      Returns:
      The JDBC type used to represent null in prepared statements.
    • getPriority

      public int getPriority()
      When identifying database types, the priority with which this type will be used. High numbers indicate that this type will be used in preference to others.
      Specified by:
      getPriority in interface DatabaseType
    • createDatabase

      public Database<?> createDatabase(Configuration configuration, boolean printInfo, JdbcConnectionFactory jdbcConnectionFactory)
      Description copied from interface: DatabaseType
      Initializes the Database class, and optionally prints some information.
      Specified by:
      createDatabase in interface DatabaseType
      Parameters:
      configuration - The MigrateDB configuration.
      printInfo - Where the DB info should be printed in the logs.
      jdbcConnectionFactory - The current connection factory.
      Returns:
      The appropriate Database class.
    • createDatabase

      public abstract Database<?> createDatabase(Configuration configuration, JdbcConnectionFactory jdbcConnectionFactory)
      Description copied from interface: DatabaseType
      Initializes the Database used by this Database Type.
      Specified by:
      createDatabase in interface DatabaseType
      Parameters:
      configuration - The MigrateDB configuration.
      jdbcConnectionFactory - The current connection factory.
      Returns:
      The Database.
    • createParser

      public abstract BaseParser createParser(Configuration configuration, ResourceProvider resourceProvider, ParsingContext parsingContext)
      Description copied from interface: DatabaseType
      Initializes the Parser used by this Database Type.
      Specified by:
      createParser in interface DatabaseType
      Parameters:
      configuration - The MigrateDB configuration.
      Returns:
      The Parser.
    • createSqlScriptFactory

      public SqlScriptFactory createSqlScriptFactory(Configuration configuration, ParsingContext parsingContext)
      Description copied from interface: DatabaseType
      Initializes the SqlScriptFactory used by this Database Type.
      Specified by:
      createSqlScriptFactory in interface DatabaseType
      Parameters:
      configuration - The MigrateDB configuration.
      Returns:
      The SqlScriptFactory.
    • createSqlScriptExecutorFactory

      public SqlScriptExecutorFactory createSqlScriptExecutorFactory(JdbcConnectionFactory jdbcConnectionFactory, CallbackExecutor callbackExecutor)
      Description copied from interface: DatabaseType
      Initializes the SqlScriptExecutorFactory used by this Database Type.
      Specified by:
      createSqlScriptExecutorFactory in interface DatabaseType
      Parameters:
      jdbcConnectionFactory - The current connection factory.
      Returns:
      The SqlScriptExecutorFactory.
    • createExecutionStrategy

      public DatabaseExecutionStrategy createExecutionStrategy(Connection connection)
      Description copied from interface: DatabaseType
      Initializes the DatabaseExecutionStrategy used by this Database Type.
      Specified by:
      createExecutionStrategy in interface DatabaseType
      Returns:
      The DatabaseExecutionStrategy.
    • createTransactionalExecutionTemplate

      public ExecutionTemplate createTransactionalExecutionTemplate(Connection connection, boolean rollbackOnException)
      Description copied from interface: DatabaseType
      Initializes the ExecutionTemplate used by this Database Type.
      Specified by:
      createTransactionalExecutionTemplate in interface DatabaseType
      Returns:
      The ExecutionTemplate.
    • getSelectVersionOutput

      public static String getSelectVersionOutput(Connection connection)
      Retrieves the version string for a connection as described by SELECT VERSION(), which may differ from the connection metadata.
    • alterConnectionAsNeeded

      public void alterConnectionAsNeeded(Connection connection, Configuration configuration)
      Description copied from interface: DatabaseType
      Carries out any manipulation on the Connection that is required by MigrateDB's config
      Specified by:
      alterConnectionAsNeeded in interface DatabaseType
      Parameters:
      connection - The JDBC connection.
      configuration - The MigrateDB configuration.