Class SpringLiquibase

java.lang.Object
liquibase.integration.spring.SpringLiquibase
All Implemented Interfaces:
org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.InitializingBean, org.springframework.context.ResourceLoaderAware

public class SpringLiquibase extends Object implements org.springframework.beans.factory.InitializingBean, org.springframework.beans.factory.BeanNameAware, org.springframework.context.ResourceLoaderAware
A Spring-ified wrapper for Liquibase.

Example Configuration:

This Spring configuration example will cause liquibase to run automatically when the Spring context is initialized. It will load db-changelog.xml from the classpath and apply it against myDataSource.

 <bean id="myLiquibase"
          class="liquibase.spring.SpringLiquibase"
          >

      <property name="dataSource" ref="myDataSource" />

      <property name="changeLog" value="classpath:db-changelog.xml" />

 </bean>

 
  • Field Details

    • log

      protected final Logger log
    • beanName

      protected String beanName
    • resourceLoader

      protected org.springframework.core.io.ResourceLoader resourceLoader
    • dataSource

      protected DataSource dataSource
    • changeLog

      protected String changeLog
    • contexts

      protected String contexts
    • labelFilter

      protected String labelFilter
    • tag

      protected String tag
    • parameters

      protected Map<String,String> parameters
    • defaultSchema

      protected String defaultSchema
    • liquibaseSchema

      protected String liquibaseSchema
    • databaseChangeLogTable

      protected String databaseChangeLogTable
    • databaseChangeLogLockTable

      protected String databaseChangeLogLockTable
    • liquibaseTablespace

      protected String liquibaseTablespace
    • dropFirst

      protected boolean dropFirst
    • clearCheckSums

      protected boolean clearCheckSums
    • shouldRun

      protected boolean shouldRun
    • rollbackFile

      protected File rollbackFile
    • showSummary

      protected UpdateSummaryEnum showSummary
    • showSummaryOutput

      protected UpdateSummaryOutputEnum showSummaryOutput
    • testRollbackOnUpdate

      protected boolean testRollbackOnUpdate
    • uiService

      protected UIServiceEnum uiService
    • customizer

      protected Customizer<Liquibase> customizer
  • Constructor Details

    • SpringLiquibase

      public SpringLiquibase()
  • Method Details

    • getDatabaseProductName

      public String getDatabaseProductName() throws DatabaseException
      Throws:
      DatabaseException
    • getDataSource

      public DataSource getDataSource()
      The DataSource that liquibase will use to perform the migration.
    • setDataSource

      public void setDataSource(DataSource dataSource)
      The DataSource that liquibase will use to perform the migration.
    • getChangeLog

      public String getChangeLog()
      Returns a Resource that is able to resolve to a file or classpath resource.
    • setChangeLog

      public void setChangeLog(String dataModel)
      Sets a Spring Resource that is able to resolve to a file or classpath resource. An example might be classpath:db-changelog.xml.
    • getLabels

      @Deprecated public String getLabels()
      Deprecated.
      use #getLabelFilter()
    • setLabels

      @Deprecated public void setLabels(String labels)
      Deprecated.
      use #setLabelFilter(String)
    • isTestRollbackOnUpdate

      public boolean isTestRollbackOnUpdate()
      Returns whether a rollback should be tested at update time or not.
    • setTestRollbackOnUpdate

      public void setTestRollbackOnUpdate(boolean testRollbackOnUpdate)
      If testRollbackOnUpdate is set to true a rollback will be tested at update time. For doing so when the update is performed
      Parameters:
      testRollbackOnUpdate -
    • afterPropertiesSet

      public void afterPropertiesSet() throws LiquibaseException
      Executed automatically when the bean is initialized.
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
      Throws:
      LiquibaseException
    • performUpdate

      protected void performUpdate(Liquibase liquibase) throws LiquibaseException
      Throws:
      LiquibaseException
    • createLiquibase

      protected Liquibase createLiquibase(Connection c) throws LiquibaseException
      Throws:
      LiquibaseException
    • createDatabase

      protected Database createDatabase(Connection c, ResourceAccessor resourceAccessor) throws DatabaseException
      Subclasses may override this method to modify the database settings, such as the default schema, before returning the database object.
      Parameters:
      c - the connection to the database
      Returns:
      a Database implementation retrieved from the DatabaseFactory
      Throws:
      DatabaseException - if there is an error retrieving the database implementation
    • setChangeLogParameters

      public void setChangeLogParameters(Map<String,String> parameters)
    • createResourceOpener

      protected SpringResourceAccessor createResourceOpener()
      Create a new resourceOpener.
    • getBeanName

      public String getBeanName()
      Gets the Spring-name of this instance.
      Returns:
    • setBeanName

      public void setBeanName(String name)
      Spring sets this automatically to the instance's configured bean name.
      Specified by:
      setBeanName in interface org.springframework.beans.factory.BeanNameAware
    • setShowSummaryOutput

      public void setShowSummaryOutput(UpdateSummaryOutputEnum showSummaryOutput)
    • setUiService

      public void setUiService(UIServiceEnum uiService)
    • toString

      public String toString()
      Overrides:
      toString in class Object