Class TopiaFlywayServiceImpl

java.lang.Object
org.nuiton.topia.flyway.TopiaFlywayServiceImpl
All Implemented Interfaces:
TopiaFlywayService, org.nuiton.topia.persistence.TopiaMigrationService, org.nuiton.topia.persistence.TopiaService

public class TopiaFlywayServiceImpl extends Object implements TopiaFlywayService
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 Details

  • Constructor Details

    • TopiaFlywayServiceImpl

      public TopiaFlywayServiceImpl()
  • Method Details

    • initTopiaService

      public void initTopiaService(org.nuiton.topia.persistence.TopiaApplicationContext topiaApplicationContext, Map<String,String> serviceConfiguration)
      Specified by:
      initTopiaService in interface org.nuiton.topia.persistence.TopiaService
    • newFlywayConfiguration

      protected org.flywaydb.core.api.configuration.ClassicConfiguration newFlywayConfiguration(org.nuiton.topia.persistence.TopiaApplicationContext topiaApplicationContext, Map<String,String> flywayParametersFromTopiaConfiguration)
    • 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 in TopiaApplicationContext.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

      public String getSchemaVersion() throws org.nuiton.topia.persistence.TopiaMigrationServiceException
      Specified by:
      getSchemaVersion in interface org.nuiton.topia.persistence.TopiaMigrationService
      Throws:
      org.nuiton.topia.persistence.TopiaMigrationServiceException
    • initOnCreateSchema

      public void initOnCreateSchema()
      Specified by:
      initOnCreateSchema in interface org.nuiton.topia.persistence.TopiaMigrationService
    • runSchemaMigration

      public void runSchemaMigration()
      Specified by:
      runSchemaMigration in interface org.nuiton.topia.persistence.TopiaMigrationService
    • close

      public void close()
      Specified by:
      close in interface org.nuiton.topia.persistence.TopiaService