Interface Configuration
-
- All Known Implementing Classes:
DefaultConfiguration,FluentConfiguration
public interface Configuration
-
-
Method Summary
-
-
-
Method Detail
-
getClassLoader
ClassLoader getClassLoader()
- Returns:
- The ClassLoader to use for loading migrations, resolvers, etc. from the classpath. (default: Thread.currentThread().getContextClassLoader() )
-
getDataSource
@Nullable ConnectionProvider getDataSource()
- Returns:
- The data source to use to access the database. Must have the necessary privileges to execute DDL.
-
getConnectRetries
int getConnectRetries()
- Returns:
- The maximum number of retries when attempting to connect to the database. After each failed attempt, MigrateDB will wait 1 second before attempting to connect again, up to the maximum number of times specified by * connectRetries. The interval between retries doubles with each subsequent attempt. (default: 0)
-
getConnectRetriesInterval
int getConnectRetriesInterval()
- Returns:
- The maximum time between retries when attempting to connect to the database in seconds. This will cap the interval between connect retry to the value provided. (default: 120)
-
getInitSql
String getInitSql()
- Returns:
- The SQL statements to run to initialize a new database connection immediately after opening it. (default:
null)
-
getBaselineVersion
Version getBaselineVersion()
- Returns:
- The version to tag an existing schema with when executing baseline. (default: 1)
-
getBaselineDescription
String getBaselineDescription()
- Returns:
- The description to tag an existing schema with when executing baseline. (default: << MigrateDB Baseline >>)
-
getResolvers
List<MigrationResolver> getResolvers()
- Returns:
- The custom
MigrationResolvers to be used in addition to the built-in ones for resolving Migrations to apply. An empty list if none. (default: none)
-
isSkipDefaultResolvers
boolean isSkipDefaultResolvers()
- Returns:
- Whether default built-in resolvers should be skipped. If true, only custom resolvers are used. (default: false)
-
getCallbacks
List<Callback> getCallbacks()
- Returns:
- The callbacks for lifecycle notifications. An empty list if none. (default: none)
-
isSkipDefaultCallbacks
boolean isSkipDefaultCallbacks()
- Returns:
- Whether default built-in callbacks should be skipped. If true, only custom callbacks are used. (default: false)
-
getSqlMigrationPrefix
String getSqlMigrationPrefix()
- Returns:
- The file name prefix for versioned SQL migrations. Versioned SQL migrations have the following file name structure: prefixVERSIONseparatorDESCRIPTIONsuffix, which using the defaults translates to V1.1__My_description.sql. (default: V)
-
getBaselineMigrationPrefix
String getBaselineMigrationPrefix()
- Returns:
- The file name prefix for baseline migrations. Baseline migrations represent all migrations with
version <= current baseline migration versionwhile keeping older migrations if needed for upgrading older deployments. They have the following file name structure: prefixVERSIONseparatorDESCRIPTIONsuffix, which using the defaults translates to B1.1__My_description.sql. (default: B)
-
getRepeatableSqlMigrationPrefix
String getRepeatableSqlMigrationPrefix()
- Returns:
- The file name prefix for repeatable SQL migrations. Repeatable SQL migrations have the following file name structure: prefixSeparatorDESCRIPTIONsuffix, which using the defaults translates to R__My_description.sql. (default: R)
-
getSqlMigrationSeparator
String getSqlMigrationSeparator()
- Returns:
- The file name separator for SQL migrations. SQL migrations have the following file name structure: prefixVERSIONseparatorDESCRIPTIONsuffix, which using the defaults translates to V1.1__My_description.sql. (default: __)
-
getSqlMigrationSuffixes
List<String> getSqlMigrationSuffixes()
- Returns:
- The file name suffixes for SQL migrations. SQL migrations have the following file name structure: prefixVERSIONseparatorDESCRIPTIONsuffix, which using the defaults translates to V1_1__My_description.sql Multiple suffixes (like .sql,.pkg,.pkb) can be specified for easier compatibility with other tools such as editors with specific file associations. (default: .sql)
-
getJavaMigrations
List<JavaMigration> getJavaMigrations()
- Returns:
- The additional Java-based migrations. These are not Java-based migrations discovered through classpath scanning and instantiated by MigrateDB. Instead, these are manually added instances of JavaMigration. This is particularly useful when working with a dependency injection container, where you may want the DI container to instantiate the class and wire up its dependencies for you. An empty list if none. (default: none)
-
isPlaceholderReplacement
boolean isPlaceholderReplacement()
- Returns:
- Whether placeholders should be replaced. (default: true)
-
getPlaceholderSuffix
String getPlaceholderSuffix()
- Returns:
- The suffix of every placeholder. (default: } )
-
getPlaceholderPrefix
String getPlaceholderPrefix()
- Returns:
- The prefix of every placeholder. (default: ${ )
-
getScriptPlaceholderSuffix
String getScriptPlaceholderSuffix()
- Returns:
- The suffix of every script placeholder. (default: __ )
-
getScriptPlaceholderPrefix
String getScriptPlaceholderPrefix()
- Returns:
- The prefix of every script placeholder. (default: FP__ )
-
getPlaceholders
Map<String,String> getPlaceholders()
- Returns:
- The map of <placeholder, replacementValue> to apply to sql migration scripts.
-
getTarget
TargetVersion getTarget()
- Returns:
- The target version up to which MigrateDB should consider migrations. Migrations with a higher version
number will be ignored. Special values:
current: Designates the current version of the schemalatest: The latest version of the schema, as defined by the migration with the highest version- <version>? (end with a '?'): Instructs MigrateDB not to fail if the target version doesn't exist. In this case, MigrateDB will go up to but not beyond the specified target (default: fail if the target version doesn't exist)
latest
-
isFailOnMissingTarget
boolean isFailOnMissingTarget()
- Returns:
- Whether to fail if no migration with the configured target version exists (default:
true)
-
getCherryPick
List<MigrationPattern> getCherryPick()
- Returns:
- The migrations that MigrateDb should consider when migrating. Leave empty to consider all available migrations. Migrations not in this list will be ignored.
-
getTable
String getTable()
- Returns:
- The name of the schema history table that will be used by MigrateDB. By default, (single-schema mode) the schema history table is placed in the default schema for the connection provided by the datasource. When the migratedb.schemas property is set (multi-schema mode), the schema history table is placed in the first schema of the list. (default: migratedb_state)
-
getOldTable
String getOldTable()
- Returns:
- The old table to convert into the format used by MigrateDB. Only used for the "liberate" command.
-
isLiberateOnMigrate
boolean isLiberateOnMigrate()
- Returns:
- Whether the
liberatecommand is automatically executed onmigrateif the schema history table does not exist, butoldTableexists. (Default:true)
-
getTablespace
@Nullable String getTablespace()
- Returns:
- The tablespace where to create the schema history table that will be used by MigrateDB. If not specified, MigrateDB uses the default tablespace for the database connection. This setting is only relevant for databases that do support the notion of tablespaces. Its value is simply ignored for all others.
-
getDefaultSchema
String getDefaultSchema()
- Returns:
- The default schema managed by MigrateDB. This schema name is case-sensitive. If not specified, but
schemas
is, MigrateDB uses the first schema in that list. If that is also not specified, MigrateDb uses the default
schema for the database connection.
Consequences:
- This schema will be the one containing the schema history table.
- This schema will be the default for the database connection (provided the database supports this concept) .
-
getSchemas
List<String> getSchemas()
- Returns:
- The schemas managed by MigrateDB. These schema names are case-sensitive. If not specified, MigrateDB uses
the default schema for the database connection. If defaultSchemaName is not specified, then the first of
this list also acts as default schema.
Consequences:
- MigrateDB will automatically attempt to create all these schemas, unless they already exist.
-
getEncoding
Charset getEncoding()
- Returns:
- The encoding of SQL migrations. (default: UTF-8)
-
getLocations
List<Location> getLocations()
- Returns:
- The locations to scan recursively for migrations. The location type is determined by its prefix.
Unprefixed locations or locations starting with
classpath:point to a package on the classpath and may contain both SQL and Java-based migrations. Locations starting withfilesystem:point to a directory on the filesystem, may only contain SQL migrations and are only scanned recursively down non-hidden directories. (default: classpath:db/migration)
-
isBaselineOnMigrate
boolean isBaselineOnMigrate()
- Returns:
- Whether to automatically call baseline when migrate is executed against a non-empty schema with no schema
history table. This schema will then be initialized with the
baselineVersionbefore executing the migrations. Only migrations abovebaselineVersionwill then be applied.This is useful for initial MigrateDB production deployments on projects with an existing DB.
Be careful when enabling this as it removes the safety net that ensures MigrateDB does not migrate the wrong database in case of a configuration mistake! (default:
false)
-
isSkipExecutingMigrations
boolean isSkipExecutingMigrations()
- Returns:
- Whether MigrateDB should skip actually executing the contents of the migrations and only update the
schema history table. This should be used when you have applied a migration manually (via executing the sql
yourself, or via an ide), and just want the schema history table to reflect this.
Use in conjunction with
cherryPickto skip specific migrations instead of all pending ones. (default:false)
-
isOutOfOrder
boolean isOutOfOrder()
- Returns:
- Whether migrations are allowed to be run "out of order". If you already have versions 1 and 3 applied,
and now a version 2 is found, it will be applied too instead of being ignored. (default:
false)
-
isIgnoreMissingMigrations
boolean isIgnoreMissingMigrations()
- Returns:
- Ignore missing migrations when reading the schema history table. These are migrations that were performed
by an older deployment of the application that are no longer available in this version. For example: we have
migrations available on the classpath with versions 1.0 and 3.0. The schema history table indicates that a
migration with version 2.0 (unknown to us) has also been applied. Instead of bombing out (fail fast) with an
exception, a warning is logged and MigrateDB continues normally. This is useful for situations where one must be
able to deploy a newer version of the application even though it doesn't contain migrations included with an
older one anymore. Note that if the most recently applied migration is removed, MigrateDb has no way to know it
is missing and will mark it as future instead.
trueto continue normally and log a warning,falseto fail fast with an exception. (default:false)
-
isIgnoreIgnoredMigrations
boolean isIgnoreIgnoredMigrations()
- Returns:
- Ignore ignored migrations when reading the schema history table. These are migrations that were added in
between already migrated migrations in this version. For example: we have migrations available on the classpath
with versions from 1.0 to 3.0. The schema history table indicates that version 1 was finished on 1.0.15, and the
next one was 2.0.0. But with the next release a new migration was added to version 1: 1.0.16. Such scenario is
ignored by migrate command, but by default is rejected by validate. When ignoreIgnoredMigrations is enabled, such
case will not be reported by validate command. This is useful for situations where one must be able to deliver
complete set of migrations in a delivery package for multiple versions of the product, and allows for further
development of older versions.
trueto continue normally,falseto fail fast with an exception. (default:false)
-
isIgnorePendingMigrations
boolean isIgnorePendingMigrations()
- Returns:
- Ignore pending migrations when reading the schema history table. These are migrations that are available
but have not yet been applied. This can be useful for verifying that in-development migration changes don't
contain any validation-breaking changes of migrations that have already been applied to a production environment,
e.g. as part of a CI/CD process, without failing because of the existence of new migration versions.
trueto continue normally,falseto fail fast with an exception. (default:false)
-
isIgnoreFutureMigrations
boolean isIgnoreFutureMigrations()
- Returns:
- Ignore future migrations when reading the schema history table. These are migrations that were performed
by a newer deployment of the application that are not yet available in this version. For example: we have
migrations available on the classpath up to version 3.0. The schema history table indicates that a migration to
version 4.0 (unknown to us) has already been applied. Instead of bombing out (fail fast) with an exception, a
warning is logged and MigrateDB continues normally. This is useful for situations where one must be able to
redeploy an older version of the application after the database has been migrated by a newer one.
trueto continue normally and log a warning,falseto fail fast with an exception. (default:true)
-
getIgnoreMigrationPatterns
List<ValidatePattern> getIgnoreMigrationPatterns()
- Returns:
- Patterns of ignored migrations. Each pattern is of the form
<migration_type>:<migration_state>. See the website for full details.Example: repeatable:missing,versioned:pending,*:failed
(default: none)
-
isValidateMigrationNaming
boolean isValidateMigrationNaming()
- Returns:
- Whether to validate migrations and callbacks whose scripts do not obey the correct naming convention. A
failure can be useful to check that errors such as case sensitivity in migration prefixes have been corrected.
falseto continue normally,trueto fail fast with an exception. (default:false)
-
isValidateOnMigrate
boolean isValidateOnMigrate()
- Returns:
- Whether to automatically call validate or not when running migrate.
trueif validate should be called.falseif not. (default:true)
-
isMixed
boolean isMixed()
- Returns:
- Whether to allow mixing transactional and non-transactional statements within the same migration.
Enabling this automatically causes the entire affected migration to be run without a transaction.
Note that this is only applicable for PostgreSQL, Aurora PostgreSQL, SQL Server and SQLite which all have statements that do not run at all within a transaction. This is not to be confused with implicit transaction, as they occur in MySQL or Oracle, where even though a DDL statement was run within a transaction, the database will issue an implicit commit before and after its execution.
trueif mixed migrations should be allowed.falseif an error should be thrown instead. (default:false)
-
isGroup
boolean isGroup()
- Returns:
- Whether to group all pending migrations together in the same transaction when applying them (only
recommended for databases with support for DDL transactions).
trueif migrations should be grouped.falseif they should be applied individually instead. (default:false)
-
getInstalledBy
String getInstalledBy()
- Returns:
- The username that will be recorded in the schema history table as having applied the migration, or
nullfor the current database user of the connection (default:null).
-
isOutputQueryResults
boolean isOutputQueryResults()
- Returns:
- Whether MigrateDB should output a table with the results of queries when executing migrations.
trueto output the results table (default:true)
-
getResourceProvider
ResourceProvider getResourceProvider()
- Returns:
- The custom ResourceProvider to be used to look up resources. If not set, the default strategy will be used. (default: null)
-
getJavaMigrationClassProvider
ClassProvider<JavaMigration> getJavaMigrationClassProvider()
- Returns:
- The custom ClassProvider to be used to look up
JavaMigrationclasses. If not set, the default strategy will be used. (default: null)
-
isCreateSchemas
boolean isCreateSchemas()
- Returns:
- Whether MigrateDB should attempt to create the schemas specified in the
schemasproperty. (default:true)
-
getLockRetryCount
int getLockRetryCount()
- Returns:
- The maximum number of retries when trying to obtain a lock. -1 indicates attempting to repeat indefinitely.
-
isFailOnMissingLocations
boolean isFailOnMissingLocations()
- Returns:
- Whether to fail if a location specified in the
migratedb.locationsoption doesn't exist. (default:false)
-
getLogger
LogSystem getLogger()
- Returns:
- The log system MigrateDB should use.
-
getDatabaseTypeRegister
DatabaseTypeRegister getDatabaseTypeRegister()
- Returns:
- The database type register.
-
getLoadedExtensions
Set<MigrateDbExtension> getLoadedExtensions()
- Returns:
- Unmodifiable set of extensions that have been loaded into this configuration.
-
getExtensionConfig
Map<Class<? extends ExtensionConfig>,? extends ExtensionConfig> getExtensionConfig()
- Returns:
- A read-only view of the extension config (by type).
-
getExtensionConfig
default <T extends ExtensionConfig> @Nullable T getExtensionConfig(Class<T> type)
Gets a specific extension configuration.- Returns:
- Instance of
<T>if configured,nullotherwise.
-
-