我使用以下beean在spring上下文中更新方案和初始数据:
<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>
我还使用Maven liquibase插件生成sql脚本,以查看创建了哪些表等。
<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>
db.changelog-master.xml
文件包括子liquibase更改日志文件。问题是,如何从高手那里引用它们。当我使用Spring时,我必须通过classpath使用以下路径:<include file="classpath:/db/changelog/db.changelog-1.0.xml"/>
使用Maven时,路径为:
<include file="src/main/resources/db/changelog/db.changelog-1.0.xml"/>
我想在两种情况下都使用相同的配置。如何存档?
最佳答案
我评论了Igor的答案,他的解决方案似乎无效。
为了解决这个问题,我只是向Liquibase推送了一个补丁:https://github.com/liquibase/liquibase/pull/187。它应该在3.0.6-SNAPSHOT中合并,因此不久在3.0.6中可用。
进行此更改后,您现在可以使用以下附加行配置SpringLiquibase
:
<property name="ignoringClasspathPrefix" value="true" />
可以在此处找到需要此更改的另一个示例/用例:https://github.com/LateralThoughts/spring-liquibase-extensions。
关于java - 通过Maven和Spring使用Liquibase文件路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16605099/