La primavera di avvio – disabilita Liquibase all’avvio

Voglio avere Liquibase configurato con la mia primavera di avvio dell’applicazione, quindi ho aggiunto le dipendenze per pom.xml e il percorso master.xml in applicazione.proprietà. Questo funziona bene e corre a Molla Liquibase all’avvio. Il problema è che ora voglio correre Liquibase manualmente, non all’avvio dell’applicazione. Devo disattivare completamente Liquibase la configurazione automatica o posso usare, e solo disabilitare l’esecuzione di valutazioni all’avvio ?

InformationsquelleAutor Gravian | 2016-06-08

 

5 Replies
  1. 30

    Aggiungere liquibase.enabled=false nell’applicazione.file di proprietà

    Riferimento

    Ma se non si desidera utilizzare liquibase dall’applicazione di più, rimuovere liquibase starter del tutto dal pom.

  2. 24

    Relativa proprietà nome è cambiato tra la Primavera versioni:

    • Per Primavera 4.x.x: il liquibase.enabled=false proprietà di applicazione disabilita Liquibase.

    • Per Primavera 5.x.x: il spring.liquibase.enabled=false proprietà di applicazione disabilita Liquibase.


    P. S. E per Flyway:

    • Primavera 4.x.x: flyway.enabled=false

    • Primavera 5.x.x: spring.flyway.enabled=false

  3. 19

    Se vedi sul LiquibaseProperties, c’è un prefisso come

     prefix = "spring.liquibase"

    Quindi, il Mio suggerimento è quello di utilizzare

    spring.liquibase.enabled=false

    Risolto il mio problema con la primavera di avvio 2.0.0.RC1

  4. 6

    Ho affrontato un problema per il quale non ero in grado di disattivare Liquibase dalla proprietà, per qualche ragione, questo è come ho disabilitato Liquibase con @Bean annotazione:

    @Bean
    public SpringLiquibase liquibase() {
      SpringLiquibase liquibase = new SpringLiquibase();
      liquibase.setShouldRun(false);
      return liquibase;
    }
    • Dopo questo ho ricevuto org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'liquibase' available
  5. 2

    Se si desidera eseguire Liquibase manualmente, è possibile utilizzare il liquibase maven plugin. Basta aggiungere qualcosa di simile a questa pom.xml:

      <plugin>
        <groupId>org.liquibase</groupId>
        <artifactId>liquibase-maven-plugin</artifactId>
        <version>${liquibase.version}</version>
        <configuration>
          <changeLogFile>src/main/liquibase/master.xml</changeLogFile>
          <propertyFile>src/main/liquibase/liquibase.properties</propertyFile>
          <promptOnNonLocalDatabase>false</promptOnNonLocalDatabase>
        </configuration>
      </plugin>

    Si può dare un’occhiata al documentazione del plugin per i dettagli di configurazione.

    E non utilizzare la liquibase supporto dalla Primavera di Avvio, in quanto è solo destinato ad essere utilizzato in fase di runtime. È sufficiente rimuovere il liquibase di avviamento e/o di eventuali relative dipendenze, come avrete solo bisogno di maven plugin.

    • Il problema con questo è che quando la primavera di avvio trova liquibase nel classpath cercherà di eseguire all’avvio, per quanto ne so.
    • Ecco perché è necessario rimuovere il liquibase motorino di avviamento, o qualsiasi danno diretto liquibase dipendenza se è stato aggiunto qualsiasi. Se si dispone solo di liquibase maven plugin, liquibase non è nel classpath dell’applicazione.

Lascia un commento