aggiorno schema ei dati iniziali, in un contesto di primavera con la seguente beean:Utilizzando i percorsi dei file liquibase via sia Maven e la primavera
<bean id="liquibase" class="liquibase.integration.spring.SpringLiquibase">
<property name="dataSource" ref="dataSource" />
<property name="changeLog" value="classpath:db/changelog/db.changelog-master.xml" />
<property name="dropFirst" value="true" />
</bean>
Io uso anche Maven liquibase plugin per generare script SQL per vedere quali tabelle sono creato e ecc
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>2.0.5</version>
<configuration>
<!--mvn initialize liquibase:updateSQL-->
<propertyFile>src/main/resources/db/config/liquibase-gensql-data-access.properties</propertyFile>
<changeLogFile>src/main/resources/db/changelog/db.changelog-master.xml</changeLogFile>
</configuration>
</plugin>
Il file db.changelog-master.xml
comprende bambino liquibase file changelog. Il problema, come fare riferimento a loro dal maestro. Quando uso primavera devo usare il seguente percorso via classpath:
<include file="classpath:/db/changelog/db.changelog-1.0.xml"/>
Quando si utilizza Maven, il percorso è:
<include file="src/main/resources/db/changelog/db.changelog-1.0.xml"/>
Mi piacerebbe avere la stessa configurazione per entrambi i casi. Come posso archiviarlo?
Solo un aggiornamento: come da liquibase-3.1, la proprietà è ora chiamata 'ignoreClasspathPrefix' ed è true da deault. –
Piccoli dettagli che hanno funzionato per me: in Maven, non specificare la parte 'src/main/resources', altrimenti sarà incompatibile con Spring. Ho configurato 'db/changelog/...' in Maven e 'classpath: db/changelog/...' in Spring (application.properties) e poi ha funzionato. – jdebon