Package org.nuiton.topia.flyway
Class TopiaFlywayServiceImpl
java.lang.Object
org.nuiton.topia.flyway.TopiaFlywayServiceImpl
- All Implemented Interfaces:
TopiaFlywayService,TopiaMigrationService,TopiaService
Implementation for
TopiaFlywayService.
Since 3.7, this implementation allows you to configure flyway using
this service configuration. You can use all configuration constants
as shown in ConfigUtils.
Example properties:
# let's declare a service named "migration"
topia.service.migration=org.nuiton.topia.flyway.TopiaFlywayServiceImpl
# let's configure that service using ConfigUtils.TABLE
topia.service.migration.flyway.table=schema_version
- Since:
- 3.0
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected StringValue forTopiaFlywayService.FLYWAY_BASELINE_VERSIONconfiguration parameter.protected org.flywaydb.core.api.configuration.Configurationprotected Stringprotected booleanValue forTopiaFlywayService.USE_MODEL_VERSIONconfiguration parameter.Fields inherited from interface org.nuiton.topia.flyway.TopiaFlywayService
FLYWAY_BASELINE_VERSION, FLYWAY_INIT_VERSION, USE_MODEL_VERSION -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()protected voiddoExtraConfiguration(org.flywaydb.core.api.configuration.ClassicConfiguration flywayConfiguration, TopiaApplicationContext topiaApplicationContext) Opened hook to override in a sub-class.voidvoidinitTopiaService(TopiaApplicationContext topiaApplicationContext, Map<String, String> serviceConfiguration) protected org.flywaydb.core.api.configuration.ClassicConfigurationnewFlywayConfiguration(TopiaApplicationContext topiaApplicationContext, Map<String, String> flywayParametersFromTopiaConfiguration) voidprotected voidsetDataSource(org.flywaydb.core.api.configuration.ClassicConfiguration flywayConfiguration, TopiaApplicationContext topiaApplicationContext) Define flyway database credentials.protected voidsetLocations(org.flywaydb.core.api.configuration.ClassicConfiguration flywayConfiguration, TopiaApplicationContext topiaApplicationContext) Define where Flyway should look for migrations.
-
Field Details
-
flywayBaselineVersion
Value forTopiaFlywayService.FLYWAY_BASELINE_VERSIONconfiguration parameter. -
useModelVersion
protected boolean useModelVersionValue forTopiaFlywayService.USE_MODEL_VERSIONconfiguration parameter. -
flywayConfiguration
protected org.flywaydb.core.api.configuration.Configuration flywayConfiguration -
modelVersion
-
-
Constructor Details
-
TopiaFlywayServiceImpl
public TopiaFlywayServiceImpl()
-
-
Method Details
-
initTopiaService
public void initTopiaService(TopiaApplicationContext topiaApplicationContext, Map<String, String> serviceConfiguration) - Specified by:
initTopiaServicein interfaceTopiaService
-
newFlywayConfiguration
protected org.flywaydb.core.api.configuration.ClassicConfiguration newFlywayConfiguration(TopiaApplicationContext topiaApplicationContext, Map<String, String> flywayParametersFromTopiaConfiguration) -
setDataSource
protected void setDataSource(org.flywaydb.core.api.configuration.ClassicConfiguration flywayConfiguration, TopiaApplicationContext topiaApplicationContext) Define flyway database credentials. This implementation search for parameters given inTopiaApplicationContext.getConfiguration(). We use the same credentials to migrate the database as the one used when we use it. -
setLocations
protected void setLocations(org.flywaydb.core.api.configuration.ClassicConfiguration flywayConfiguration, TopiaApplicationContext topiaApplicationContext) Define where Flyway should look for migrations. This implementation search for *.sql migration files in "db/migration" resources directory and for JDBC migrations in package.to.ApplicationContext.migration package. -
doExtraConfiguration
protected void doExtraConfiguration(org.flywaydb.core.api.configuration.ClassicConfiguration flywayConfiguration, TopiaApplicationContext topiaApplicationContext) Opened hook to override in a sub-class. -
getSchemaVersion
- Specified by:
getSchemaVersionin interfaceTopiaMigrationService- Throws:
TopiaMigrationServiceException
-
initOnCreateSchema
public void initOnCreateSchema()- Specified by:
initOnCreateSchemain interfaceTopiaMigrationService
-
runSchemaMigration
public void runSchemaMigration()- Specified by:
runSchemaMigrationin interfaceTopiaMigrationService
-
close
public void close()- Specified by:
closein interfaceTopiaService
-