【发布时间】:2015-11-15 10:28:08
【问题描述】:
我正在使用 liquibase 和 maven,并且我有一个单元测试配置
<configuration>
<changeLogFile>src/main/resources/db/changelog/changelog-master.xml</changeLogFile>
<driver>org.hsqldb.jdbcDriver</driver>
<url>jdbc:hsqldb:mem:testdb;shutdown=true</url>
<referenceUrl>persistence:webapp</referenceUrl>
<username>sa</username>
<password></password>
</configuration>
在我的变更日志中,我使用 sqlFile 标记来执行插入语句。
<changeSet id="18" author="naslami">
<sqlFile path="src/main/resources/db/changelog/inserts.sql" />
</changeSet>
但是当我查看日志时,insert.sql 文件永远不会执行。 你知道为什么 liquibase 不执行 insert.sql 文件吗?
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>${liquibase.version}</version>
<executions>
<execution>
<id>install</id>
<phase>install</phase>
<goals>
<goal>update</goal>
</goals>
<configuration>
<changeLogFile>src/main/resources/db/changelog/changelog-master.xml</changeLogFile>
<driver>com.mysql.jdbc.Driver</driver>
<url>jdbc:mysql://localhost:3306/mydb</url>
<referenceUrl>persistence:webapp</referenceUrl>
<username>user</username>
<password>password</password>
</configuration>
</execution>
<execution>
<id>test</id>
<phase>test</phase>
<goals>
<goal>update</goal>
</goals>
<configuration>
<changeLogFile>src/main/resources/db/changelog/changelog-master.xml</changeLogFile>
<driver>org.hsqldb.jdbcDriver</driver>
<url>jdbc:hsqldb:mem:testdb;shutdown=true</url>
<referenceUrl>persistence:webapp</referenceUrl>
<username>sa</username>
<password></password>
</configuration>
</execution>
</executions>
</plugin>
【问题讨论】:
-
尝试去掉
src/main/resources部分,使路径变为<changeLogFile>/db/changelog/changelog-master.xml</changeLogFile>和<sqlFile path="/db/changelog/inserts.sql" /> -
没有任何变化。日志中始终没有 inserts.sql 文件的跟踪
-
我也尝试直接在
sql tag中添加 sql 脚本,但始终没有什么新东西。没有插入痕迹 -
其实我只是注意到changelog根本没有执行
-
尝试将更改日志移到
src/test/resources内。
标签: java maven unit-testing liquibase