当前位置: 首页 > 知识库问答 >
问题:

liquibase-maven-plugin和sqlFile

商皓
2023-03-14
<configuration>
    <username>${dba.username}</username>
    <password>${dba.password}</password>
    <url>${caesium.url}</url>
    <changeLogFile>master.xml</changeLogFile>
    <driver>org.postgresql.Driver</driver>
    <includeArtifact>true</includeArtifact>
</configuration>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
    <include file="baseline.xml" relativeToChangelogFile="true"/>
</databaseChangeLog>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">

    <changeSet id="base-roles" author="asdf" dbms="PostgreSQL">
        <sqlFile path="sql/some-file.sql" relativeToChangelogFile="true"/>
    </changeSet>
</databaseChangeLog>

唉!上面的构造不起作用!LiquiBase找不到sql文件。

奇怪的是,当我将主脚本设置为绝对路径时,一切正常。但是,那不是我想要做的(我不想在databasechangelog表中有绝对路径)。

共有1个答案

古扬
2023-03-14

我要回答我自己的问题,以防别人有类似的问题(从评论中,我可以看出有人碰到了这个问题)。

问题是这样的:我将主脚本(更改文件)指向: master.xml 。Liquibase在类路径上找到了它,但是,由于某种原因,无法确定它在哪个目录中(我认为这只是一个bug)。

我的结构(一个不起作用的)是这样的:

 类似资料:
  • 我有一个项目,它使用maven-assembly-plugin打包了几个(可执行的jar)程序集--基本上相同的代码,但针对不同的客户机使用了不同的数据集。 我需要在可执行jar中使用spring,由于spring中的文件命名,我需要使用maven-shade-plugin创建jar。这工作很好,我可以创建可执行的jar,但我不能确定如何将我的其他文件组装到这个新的shaded jar,因为sha

  • 我使用Maven3.3.3和maven-jaxb2-plugin Version0.12.1从XSD模式生成java类。XSD所在的地址返回HTTP 302,插件抛出: 是否可以指定xjc编译器遵循302到正确的链接,或者不去尝试下载XSD?

  • 我有一个基于Maven的项目,它使用Hibernate和Postgres(没有Spring)。 我想使用Liquibase进行数据库迁移。理想情况下,我想要以下工作流程: > 我添加了带有适当注释的实体类。我生成一个diff更改集(mvn liquibase: diff?)并将其输入存储库。 现在,我的团队中的每个人都从存储库中提取并运行一些东西(mvn更新?)以获取数据库的最新副本。 我根据需要

  • 问题内容: 我正在使用maven-buildnumber-plugin版本1.0-beta-4。这在从Subversion检出的项目上可以正常工作,但在Jenkins中失败。 我认为这个问题是由于詹金斯以某种方式删除了文件夹。 我认为错了。这是我得到的错误: 我忽略了这一点: 机器上没有安装任何客户端,这才是真正的麻烦根源。 问题答案: 错误消息显示该命令未安装在生成计算机上。您可以使用以下配置作

  • 我对Maven和LiquiBase是新手。在过去的几天里,我一直在玩没有Maven的liquibase。我尝试用一个新数据库和一个现有数据库生成changelog文件。现在我正在尝试使用插件实现Maven和Liquibase。 > 从命令提示符运行带有Maven的Liquibase比仅仅从命令提示符运行Liquibase有什么好处? 生成pom.xml文件并为当前项目准备好src文件夹之后。我在p