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

如何使用jar文件中Liquibase更改日志

轩辕亮
2023-03-14

当前,我的application.properties中有以下内容:

liquibase.change-log=类路径:/db/changelog/db.changelog-master.xml

changelog是由Liquibase找到的,并且一切都能正常工作。

我已经将changelog和项目的所有JPA实体和存储库移到了一个单独的项目中,以便它们可以与其他项目共享。

第二个项目是第一个项目的Maven依赖项。我需要在第一个项目的application.properties中使用什么路径来访问第二个项目中的liquibase更改日志

projecta.jar->pom.xml

<dependency>
    <groupId>com.foo</groupId>
    <artifactId>projectB</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>

projecta.jar->application.properties

liquibase.change-log=类路径:/db/changelog/db.changelog-master.xml

但我得到了:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration$LiquibaseConfiguration': Invocation of init method failed; nested exception is java.lang.IllegalStateException: Cannot find changelog location: class path resource [db/changelog/db.changelog-master.xml] (please add changelog or check your Liquibase configuration)

共有1个答案

易品
2023-03-14

我是个白痴。我的本地~/.m2存储库有一个旧版本的JAR,没有Liquibase更改日志。MVN clean Install修复了该问题。

 类似资料:
  • 所以我的问题是--我如何重构文件结构,而不破坏我的liquibase设置和清空我的数据库?

  • 在我们的项目中使用gradle-liquibase插件,解决了所有的依赖关系。 我有以下由Gradle liquibase插件建议的liquibase任务: 有关如何解决与类路径相关的问题的帮助吗?

  • 我决定在 Postgresql 的 Java 项目中使用 liquibase,所以我使用 maven goal 创建了初始变更集。现在它正在毫无问题地工作。 我正在寻找的是,在我对数据库进行了更改(比如从RDBMS客户端)之后,是否有任何命令可以分析更改日志和数据库状态,以根据我的更改生成更改集并将其附加到更改集xml文件中?

  • 我使用嵌入式数据库H2具有默认模式PUBLIC。我想要一个模式XYZ,而不是默认的H2模式。我怎么能改变它使用液体基地。我试图创建第一个变更集来创建模式XYZ,并将模式名称属性添加到所有DDL语句中,以使用模式名称。但是数据库转换日志和数据库转换锁是在PUBLIC模式中创建的。如何为这些表指定模式? 提前感谢您的回复。

  • 我需要从其他项目模块中提取包含变更集作为maven依赖项的changelog文件。我需要在当前项目中包含其他项目的主变更日志文件(它引用了其中的所有变更集),我将在该文件中执行maven liquibase更新/回滚或spring boot liuqibase设置。有没有办法让它奏效? 但我在设置或运行LiquiBase时出错:LiquiBase.Exception.SetupException:

  • 我在使用LiquiBase更改postgres db中的列长度时遇到了问题。 我有一个字段描述为varchar(300)的表帐户。我想把它改成varchar(2000)。 我已经在同一个文件中删除并重新创建了主键,因此我没有权限、问题、模式/数据库名称或类似的任何东西。为了测试,我清除了表中的数据。 任务“:db-management:update”执行失败。