创建在类路径资源中定义的名为“liquibase”的 bean 时出错。如何修复

问题描述 投票:0回答:1

我不知道,但是当我关闭项目然后打开它时,这个 id 被更改了。constrains::OrestHutovych 是:9:8df671e96368d2e485f0166207cc5e73

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liquibase' defined in class path resource [org/springframework/boot/autoconfigure/liquibase/LiquibaseAutoConfiguration$LiquibaseConfiguration.class]: liquibase.exception.ValidationFailedException: Validation Failed:
     1 changesets check sum
          db/changelog/0.0.1/changelog-create-identity-schema.sql::add-user_accounts_roles-table-constrains::OrestHutovych was: 9:8df671e96368d2e485f0166207cc5e73 but is now: 9:08a7c0401b617afbb4e89a5b2843b6e0

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1773) ~[spring-beans-6.1.3.jar:6.1.3]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:599) ~[spring-beans-6.1.3.jar:6.1.3]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521) ~[spring-beans-6.1.3.jar:6.1.3]
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) ~[spring-beans-6.1.3.jar:6.1.3]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.3.jar:6.1.3]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) ~[spring-beans-6.1.3.jar:6.1.3]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-6.1.3.jar:6.1.3]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:312) ~[spring-beans-6.1.3.jar:6.1.3]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-6.1.3.jar:6.1.3]
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1231) ~[spring-context-6.1.3.jar:6.1.3]
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:949) ~[spring-context-6.1.3.jar:6.1.3]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624) ~[spring-context-6.1.3.jar:6.1.3]
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.2.jar:3.2.2]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.2.jar:3.2.2]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.2.jar:3.2.2]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) ~[spring-boot-3.2.2.jar:3.2.2]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) ~[spring-boot-3.2.2.jar:3.2.2]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-3.2.2.jar:3.2.2]
    at com.example.twitterdemo.TwitterDemoApplication.main(TwitterDemoApplication.java:10) ~[classes/:na]
Caused by: liquibase.exception.CommandExecutionException: liquibase.exception.ValidationFailedException: Validation Failed:
     1 changesets check sum
          db/changelog/0.0.1/changelog-create-identity-schema.sql::add-user_accounts_roles-table-constrains::OrestHutovych was: 9:8df671e96368d2e485f0166207cc5e73 but is now: 9:08a7c0401b617afbb4e89a5b2843b6e0

    at liquibase.command.CommandScope.execute(CommandScope.java:237) ~[liquibase-core-4.24.0.jar:na]
    at liquibase.Liquibase.lambda$update$0(Liquibase.java:222) ~[liquibase-core-4.24.0.jar:na]
    at liquibase.Scope.lambda$child$0(Scope.java:184) ~[liquibase-core-4.24.0.jar:na]
    at liquibase.Scope.child(Scope.java:193) ~[liquibase-core-4.24.0.jar:na]
    at liquibase.Scope.child(Scope.java:183) ~[liquibase-core-4.24.0.jar:na]
    at liquibase.Scope.child(Scope.java:162) ~[liquibase-core-4.24.0.jar:na]
    at liquibase.Liquibase.runInScope(Liquibase.java:1371) ~[liquibase-core-4.24.0.jar:na]
    at liquibase.Liquibase.update(Liquibase.java:211) ~[liquibase-core-4.24.0.jar:na]
    at liquibase.Liquibase.update(Liquibase.java:193) ~[liquibase-core-4.24.0.jar:na]
    at liquibase.integration.spring.SpringLiquibase.performUpdate(SpringLiquibase.java:331) ~[liquibase-core-4.24.0.jar:na]
    at liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:286) ~[liquibase-core-4.24.0.jar:na]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1820) ~[spring-beans-6.1.3.jar:6.1.3]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1769) ~[spring-beans-6.1.3.jar:6.1.3]
    ... 18 common frames omitted
Caused by: liquibase.exception.ValidationFailedException: Validation Failed:
     1 changesets check sum
          db/changelog/0.0.1/changelog-create-identity-schema.sql::add-user_accounts_roles-table-constrains::OrestHutovych was: 9:8df671e96368d2e485f0166207cc5e73 but is now: 9:08a7c0401b617afbb4e89a5b2843b6e0

    at liquibase.changelog.DatabaseChangeLog.validate(DatabaseChangeLog.java:353) ~[liquibase-core-4.24.0.jar:na]
    at liquibase.command.core.helpers.DatabaseChangelogCommandStep.run(DatabaseChangelogCommandStep.java:92) ~[liquibase-core-4.24.0.jar:na]
    at liquibase.command.CommandScope.execute(CommandScope.java:214) ~[liquibase-core-4.24.0.jar:na]
    ... 30 common frames omitted
java spring spring-boot liquibase
1个回答
0
投票

您得到的 stackTrace 会告诉您问题出在哪里:

引起的:liquibase.exception.CommandExecutionException: liquibase.exception.ValidationFailedException:验证失败: 1 变更集校验和 db/changelog/0.0.1/changelog-create-identity-schema.sql::add-user_accounts_roles-table-constrains::OrestHutovych 是:9:8df671e96368d2e485f0166207cc5e73 但现在是: 9:08a7c0401b617afbb4e89a5b2843b6e0

问题出在

add-user_accounts_roles-table-constrains
.sql
文件中:您已经更改了之前在此文件中定义的
.sql
,现在当您重新运行应用程序时,文件的校验和与
DATABASECHANGELOG
表中的不同在您的数据库中。

  1. 第一个解决方案:回滚此文件中的更改并创建另一个文件,您将在其中定义最新的更改。
  2. databasechangelog
    表中进行更新,您将根据
    MD5SUM
    列将
    08a7c0401b617afbb4e89a5b2843b6e0
    列值更新为
    FILENAME

但我真的建议遵循第一个解决方案,因为

liquibase
的主要用途是database结构的
版本控制

© www.soinside.com 2019 - 2024. All rights reserved.