当前,我的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)
我是个白痴。我的本地~/.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”执行失败。