我使用以下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/

10-13 03:34