Class TopiaFlywayServiceImpl
java.lang.Object
org.nuiton.topia.flyway.TopiaFlywayServiceImpl
- All Implemented Interfaces:
TopiaFlywayService, org.nuiton.topia.persistence.TopiaMigrationService, org.nuiton.topia.persistence.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 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, org.nuiton.topia.persistence.TopiaApplicationContext topiaApplicationContext) Opened hook to override in a sub-class.voidvoidinitTopiaService(org.nuiton.topia.persistence.TopiaApplicationContext topiaApplicationContext, Map<String, String> serviceConfiguration) protected org.flywaydb.core.api.configuration.ClassicConfigurationnewFlywayConfiguration(org.nuiton.topia.persistence.TopiaApplicationContext topiaApplicationContext, Map<String, String> flywayParametersFromTopiaConfiguration) voidprotected voidsetDataSource(org.flywaydb.core.api.configuration.ClassicConfiguration flywayConfiguration, org.nuiton.topia.persistence.TopiaApplicationContext topiaApplicationContext) Define flyway database credentials.protected voidsetLocations(org.flywaydb.core.api.configuration.ClassicConfiguration flywayConfiguration, org.nuiton.topia.persistence.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
-
newFlywayConfiguration
-
setDataSource
protected void setDataSource(org.flywaydb.core.api.configuration.ClassicConfiguration flywayConfiguration, org.nuiton.topia.persistence.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, org.nuiton.topia.persistence.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, org.nuiton.topia.persistence.TopiaApplicationContext topiaApplicationContext) Opened hook to override in a sub-class. -
getSchemaVersion
- Specified by:
getSchemaVersionin interfaceorg.nuiton.topia.persistence.TopiaMigrationService- Throws:
org.nuiton.topia.persistence.TopiaMigrationServiceException
-
initOnCreateSchema
public void initOnCreateSchema()- Specified by:
initOnCreateSchemain interfaceorg.nuiton.topia.persistence.TopiaMigrationService
-
runSchemaMigration
public void runSchemaMigration()- Specified by:
runSchemaMigrationin interfaceorg.nuiton.topia.persistence.TopiaMigrationService
-
close
public void close()- Specified by:
closein interfaceorg.nuiton.topia.persistence.TopiaService
-