Class MariaDBDatabaseType
- java.lang.Object
-
- migratedb.core.internal.database.base.BaseDatabaseType
-
- migratedb.core.internal.database.mysql.mariadb.MariaDBDatabaseType
-
- All Implemented Interfaces:
DatabaseType
public class MariaDBDatabaseType extends BaseDatabaseType
-
-
Field Summary
-
Fields inherited from class migratedb.core.internal.database.base.BaseDatabaseType
APPLICATION_NAME, LOG
-
-
Constructor Summary
Constructors Constructor Description MariaDBDatabaseType()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Database<?>createDatabase(Configuration configuration, JdbcConnectionFactory jdbcConnectionFactory)Initializes the Database used by this Database Type.BaseParsercreateParser(Configuration configuration, ResourceProvider resourceProvider, ParsingContext parsingContext)Initializes the Parser used by this Database Type.booleandetectPasswordRequiredByUrl(String url)Detects whether a password is required from configuration.StringgetDriverClass(String url, ClassLoader classLoader)Get the driver class used to handle this JDBC url.StringgetName()intgetNullType()intgetPriority()When identifying database types, the priority with which this type will be used.booleanhandlesDatabaseProductNameAndVersion(String databaseProductName, String databaseProductVersion, Connection connection)This allows more fine-grained control over which DatabaseType handles which connection.booleanhandlesJDBCUrl(String url)Whether this database type should handle the given JDBC url.voidmodifyDefaultConnectionProps(String url, Properties props, ClassLoader classLoader)Set the default connection properties for this database.-
Methods inherited from class migratedb.core.internal.database.base.BaseDatabaseType
alterConnectionAsNeeded, createDatabase, createExecutionStrategy, createSqlScriptExecutorFactory, createSqlScriptFactory, createTransactionalExecutionTemplate, detectUserRequiredByUrl, externalAuthPropertiesRequired, getBackupDriverClass, getDefaultJDBCCredentialsPattern, getExternalAuthProperties, getJDBCCredentialsPattern, getSelectVersionOutput, instantiateClassExtendedErrorMessage, modifyConfigConnectionProps, modifyOverridingConnectionProps, shutdownDatabase, toString
-
-
-
-
Method Detail
-
getName
public String getName()
- Specified by:
getNamein interfaceDatabaseType- Specified by:
getNamein classBaseDatabaseType- Returns:
- The human-readable name for this database.
-
getPriority
public int getPriority()
Description copied from class:BaseDatabaseTypeWhen 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:
getPriorityin interfaceDatabaseType- Overrides:
getPriorityin classBaseDatabaseType
-
getNullType
public int getNullType()
- Specified by:
getNullTypein interfaceDatabaseType- Specified by:
getNullTypein classBaseDatabaseType- Returns:
- The JDBC type used to represent
nullin prepared statements.
-
handlesJDBCUrl
public boolean handlesJDBCUrl(String url)
Description copied from class:BaseDatabaseTypeWhether this database type should handle the given JDBC url.- Specified by:
handlesJDBCUrlin interfaceDatabaseType- Specified by:
handlesJDBCUrlin classBaseDatabaseType- Parameters:
url- The JDBC url.- Returns:
trueif this handles the JDBC url,falseif not.
-
getDriverClass
public String getDriverClass(String url, ClassLoader classLoader)
Description copied from interface:DatabaseTypeGet the driver class used to handle this JDBC url. This will only be called ifmatchesJDBCUrlpreviously returnedtrue.- Specified by:
getDriverClassin interfaceDatabaseType- Specified by:
getDriverClassin classBaseDatabaseType- Parameters:
url- The JDBC url.classLoader- The classLoader to check for driver classes.- Returns:
- The full driver class name to be instantiated to handle this url.
-
handlesDatabaseProductNameAndVersion
public boolean handlesDatabaseProductNameAndVersion(String databaseProductName, String databaseProductVersion, Connection connection)
Description copied from class:BaseDatabaseTypeThis allows more fine-grained control over which DatabaseType handles which connection. MigrateDB will use the first DatabaseType that returns true for this method.- Specified by:
handlesDatabaseProductNameAndVersionin interfaceDatabaseType- Specified by:
handlesDatabaseProductNameAndVersionin classBaseDatabaseType- Parameters:
databaseProductName- The product name returned by the database.databaseProductVersion- The product version returned by the database.connection- The connection used to connect to the database.- Returns:
trueif this handles the product name and version,falseif not.
-
createDatabase
public Database<?> createDatabase(Configuration configuration, JdbcConnectionFactory jdbcConnectionFactory)
Description copied from interface:DatabaseTypeInitializes the Database used by this Database Type.- Specified by:
createDatabasein interfaceDatabaseType- Specified by:
createDatabasein classBaseDatabaseType- Parameters:
configuration- The MigrateDB configuration.jdbcConnectionFactory- The current connection factory.- Returns:
- The Database.
-
createParser
public BaseParser createParser(Configuration configuration, ResourceProvider resourceProvider, ParsingContext parsingContext)
Description copied from interface:DatabaseTypeInitializes the Parser used by this Database Type.- Specified by:
createParserin interfaceDatabaseType- Specified by:
createParserin classBaseDatabaseType- Parameters:
configuration- The MigrateDB configuration.- Returns:
- The Parser.
-
modifyDefaultConnectionProps
public void modifyDefaultConnectionProps(String url, Properties props, ClassLoader classLoader)
Description copied from class:BaseDatabaseTypeSet the default connection properties for this database. These can be overridden bysetConfigConnectionPropsandsetOverridingConnectionProps.- Specified by:
modifyDefaultConnectionPropsin interfaceDatabaseType- Overrides:
modifyDefaultConnectionPropsin classBaseDatabaseType- Parameters:
url- The JDBC url.props- The properties to write to.classLoader- The classLoader to use.
-
detectPasswordRequiredByUrl
public boolean detectPasswordRequiredByUrl(String url)
Description copied from class:BaseDatabaseTypeDetects whether a password is required from configuration. This may not be the case if the driver supports other authentication mechanisms, or supports the password being encoded in the URL.- Specified by:
detectPasswordRequiredByUrlin interfaceDatabaseType- Overrides:
detectPasswordRequiredByUrlin classBaseDatabaseType- Parameters:
url- The url to check- Returns:
- true if a password needs to be provided
-
-