gpt4 book ai didi

java - liquibase 中的 SQL 文件从未执行过

转载 作者:行者123 更新时间:2023-11-30 08:44:35 25 4
gpt4 key购买 nike

我在 maven 中使用 liquibase,我有一个单元测试配置

<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>

最佳答案

你的 <sqlFile>标签需要一个名为“dbms”的附加属性。 dbms 指定您的数据库提供程序。当您使用“org.hsqldb.jdbcDriver”时,您需要:

<changeSet id="18" author="naslami">
<sqlFile dbms="hsqldb" path="src/main/resources/db/changelog/inserts.sql" />
</changeSet>

或:

<changeSet id="18" author="naslami">
<sqlFile dbms="h2" path="src/main/resources/db/changelog/inserts.sql" />
</changeSet>

liquibase 文档在这里 http://www.liquibase.org/documentation/changes/sql_file.html

关于java - liquibase 中的 SQL 文件从未执行过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33718685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com