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

Liquibase Maven:spring-boot启动时找不到changelog位置

井逸明
2023-03-14
<plugin>
    <groupId>org.liquibase</groupId>
    <artifactId>liquibase-maven-plugin</artifactId>
    <version>${liquibase.version}</version>
    <dependencies>
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>${postgresql.version}</version>
        </dependency>
    </dependencies>
    <configuration>
        <skip>${liquibase.skip}</skip>
        <propertyFileWillOverride>true</propertyFileWillOverride>
        <changeLogFile>src/main/resources/db.changelog-master.xml</changeLogFile>
        <propertyFile>src/main/resources/${project.artifactId}-liquibase.properties</propertyFile>
        <promptOnNonLocalDatabase>false</promptOnNonLocalDatabase>
    </configuration>
</plugin>

当我启动Spring-boot时,我会收到以下错误消息:

org.springframework.beans.factory.BeanCreationException:创建名为“org.springframework.boot.AutoConfigure.LiquiBase.LiquiBaseAutoConfiguration”的bean时出错:调用init方法失败;嵌套异常为java.lang.IllegalStateException:找不到changelog位置:类路径资源[db/changelog/db.changeLog-master.yaml](请添加changelog或检查Liquibase配置)

我不太明白为什么liquibase在设置了以下内容后要选择这个更改日志文件db/changelog/db.changelog-master.yaml

<changeLogFile>src/main/resources/db.changelog-master.xml</changeLogFile>

我的更改日志:

<?xml version="1.0" encoding="UTF-8"?>
<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.6.xsd">

    <changeSet author="ddd" id="tdev-forum-service-1"
        context="dev, int, rel" labels="tdev-forum-service">
        <createTable tableName="TDEV_FORUM" remarks="Discussions about shared code">
            <column name="FORUM_ID" type="VARCHAR(36)">
                <constraints nullable="false" primaryKey="true" />
            </column>

            <column name="TOPIC_NAME" type="VARCHAR(128)">
                <constraints nullable="false" />
            </column>

            <column name="TOPIC_CATEGORY" type="VARCHAR(32)">
                <constraints nullable="false" />
            </column>

            <column name="SOURCE_CODE_ITEM_ID" type="VARCHAR(36)">
                <constraints nullable="false" />
            </column>

        </createTable>

    </changeSet>



    <changeSet author="ddd" id="tdev-forum-service-2"
        context="dev" labels="tdev-forum-service">

        <insert tableName="TDEV_FORUM">
            <column name="FORUM_ID" value="36afbfcd-969d-4a0e-9d63-25bd9d4e8f6b" />
            <column name="TOPIC_NAME" value="How to read a text file using streams" />
            <column name="TOPIC_CATEGORY" value="I/O Streams" />
            <column name="SOURCE_CODE_ITEM_ID" value="4600eab2-c375-4b99-97ab-9670ed93f861" />
        </insert>

        <rollback>
            <delete tableName="TDEV_FORUM">
                <where>FORUM_ID='36afbfcd-969d-4a0e-9d63-25bd9d4e8f6b'</where>
            </delete>
        </rollback>
    </changeSet>



    <changeSet author="ddd" id="tdev-forum-service-3"
        context="dev, int, rel" labels="tdev-forum-service">
        <createTable tableName="TDEV_FORUM_MESSAGE" remarks="Messages from developers">
            <column name="MESSAGE_ID" type="VARCHAR(36)">
                <constraints nullable="false" primaryKey="true" />
            </column>

            <column name="FORUM_ID" type="VARCHAR(36)">
                <constraints nullable="false" />
            </column>

            <column name="CONTENT" type="TEXT">
                <constraints nullable="true" />
            </column>

        </createTable>

    </changeSet>

    <changeSet author="sdd" id="tdev-forum-service-4"
        context="dev, int, rel" labels="tdev-forum-service">

        <addForeignKeyConstraint baseColumnNames="FORUM_ID"
            baseTableName="TDEV_FORUM_MESSAGE" constraintName="FK_MESSAGE_FORUM"
            deferrable="true" initiallyDeferred="true" onDelete="CASCADE"
            onUpdate="RESTRICT" referencedColumnNames="FORUM_ID"
            referencedTableName="TDEV_FORUM" />
    </changeSet>

</databaseChangeLog>

共有1个答案

董康平
2023-03-14

默认情况下,Spring Boot希望您使用yaml格式的变更集文件,而不是XML。而且位置db/changelog/db.changelog-master.yaml似乎是默认值。

所以我想覆盖这些默认值在您的情况下是行不通的。

下面是关于如何在Spring Boot中覆盖此功能的文档。

 类似资料:
  • 我在spring Boot2应用程序中有以下错误: 由:liquiBase.exception.changeLogParseException引起:读取迁移文件时出错:无法将类路径资源[src/main/resources/changeLogs/changeLog-1.0.xml]解析为URL,因为它不存在于liquiBase.parser.core.xml.xmlChangeLogsaxPars

  • 在我的Spring Boot应用程序中,我从Thymeleaf切换到JSP,它在我的本地计算机上正常工作,但当我将它上传到Heroku服务器时,我发现出现了一个意外错误(type=notfound,status=404)/WEB-INF/jsp/home。jsp 它的罐子打包,如果它在本地工作,但不是在Heroku服务器上,这意味着什么?

  • 我对ReactJS进行了一些测试,下面是我的代码: .巴别塔 应用程序。js 指数html 主要的js 包裹json Node.js版本: 巴别塔核心版本: 问题是,当我点击时,它带给我一个错误,页面显示为空: 错误。/main.js模块构建失败(来自。/node_modules/Babel-loader/lib/index.js):错误:找不到模块'Babel-preset-es2015' 尝试

  • 我正试图通过以下命令从ADB启动服务- 我得到以下回应

  • 当我启动Spring Cloud Config服务器时,会出现以下错误。 然而,当我在浏览器中点击该URL时,它就存在了,配置服务器正在工作。怎么回事? application.yml bootstrap.yml

  • 我第一次安装Flume。我使用的是hadopop-1.2.1和Flume 1.6.0 我试着按照这个指南建立一个水槽代理。 我执行了这个命令:< code > $ bin/flume-ng agent-n $ agent _ name-c conf-f conf/flume-conf . properties . template 它说< code>log4j:ERROR setFile(null