Spring Boot + Liquibase: «Ожидаемая единая строка от SelectFromDatabaseChangeloglockStatement, но получил 2» после импорJAVA

Программисты JAVA общаются здесь
Anonymous
Spring Boot + Liquibase: «Ожидаемая единая строка от SelectFromDatabaseChangeloglockStatement, но получил 2» после импор

Сообщение Anonymous »

После импорта производственной свалки базы данных PostgreSQL в нашу среду DEV наши Spring Boot Services (которые совместно используют ту же базу данных) не могут запустить из -за LiquiBase lockexception: < /p>
liquibase.exception.LockException: Expected single row from SelectFromDatabaseChangeLogLockStatement but got 2

< /code>
Подробнее: < /p>
Проблема:
Таблица базы данных Databasechangeloglock содержит несколько строк (ожидается: только одна строка с id = 1).
Причина: производственный дамп включает в себя недостаточное состояние для базы данных. Работает, но не является долгосрочным решением.
Среда:
Два Spring Boot Service с использованием одного и того же файла LiquiBase ChangeLog.
Что мы пробовали:
Удаление и сброс базы данных DatabaseChangeLoglock (исправление проблемы временно).
Подтверждение обеих сервисов использует один и тот же Master.xml для ликвидации. /> Вопросы: < /p>
-Как мы можем гарантировать, что таблица Databasechangeloglock остается действительной после импорта производственной свалки? 🚀 < /p>
Журналы ошибок: < /p>
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liquibase' defined in class path resource [com/sncf/mycot/config/DatabaseConfiguration.class]: liquibase.exception.LockException: liquibase.exception.DatabaseException: liquibase.exception.DatabaseException: Expected single row from liquibase.statement.core.SelectFromDatabaseChangeLogLockStatement@44215d9f but got 2
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1773)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:599)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:312)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1231)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:949)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:334)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343)
at com.sncf.mycot.MycotApp.main(MycotApp.java:21)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:108)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)
Caused by: liquibase.exception.CommandExecutionException: liquibase.exception.LockException: liquibase.exception.DatabaseException: liquibase.exception.DatabaseException: Expected single row from liquibase.statement.core.SelectFromDatabaseChangeLogLockStatement@44215d9f but got 2
at liquibase.command.CommandScope.execute(CommandScope.java:237)
at liquibase.Liquibase.lambda$update$0(Liquibase.java:222)
at liquibase.Scope.lambda$child$0(Scope.java:184)
at liquibase.Scope.child(Scope.java:193)
at liquibase.Scope.child(Scope.java:183)
at liquibase.Scope.child(Scope.java:162)
at liquibase.Liquibase.runInScope(Liquibase.java:1371)
at liquibase.Liquibase.update(Liquibase.java:211)
at liquibase.Liquibase.update(Liquibase.java:193)
at liquibase.integration.spring.SpringLiquibase.performUpdate(SpringLiquibase.java:331)
at liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:286)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1820)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1769)
... 26 common frames omitted
Caused by: liquibase.exception.LockException: liquibase.exception.DatabaseException: liquibase.exception.DatabaseException: Expected single row from liquibase.statement.core.SelectFromDatabaseChangeLogLockStatement@44215d9f but got 2
at liquibase.lockservice.StandardLockService.acquireLock(StandardLockService.java:343)
at liquibase.lockservice.StandardLockService.waitForLock(StandardLockService.java:258)
at liquibase.command.core.AbstractUpdateCommandStep.doRun(AbstractUpdateCommandStep.java:86)
at liquibase.command.core.AbstractUpdateCommandStep.lambda$run$0(AbstractUpdateCommandStep.java:63)
at liquibase.Scope.lambda$child$0(Scope.java:184)
at liquibase.Scope.child(Scope.java:193)
at liquibase.Scope.child(Scope.java:183)
at liquibase.Scope.child(Scope.java:162)
at liquibase.command.core.AbstractUpdateCommandStep.run(AbstractUpdateCommandStep.java:62)
at liquibase.command.core.UpdateCommandStep.run(UpdateCommandStep.java:106)
at liquibase.command.CommandScope.execute(CommandScope.java:214)
... 38 common frames omitted
Caused by: liquibase.exception.DatabaseException: liquibase.exception.DatabaseException: Expected single row from liquibase.statement.core.SelectFromDatabaseChangeLogLockStatement@44215d9f but got 2
at liquibase.executor.jvm.ChangelogJdbcMdcListener.query(ChangelogJdbcMdcListener.java:60)
at liquibase.lockservice.StandardLockService.acquireLock(StandardLockService.java:301)
... 48 common frames omitted
Caused by: liquibase.exception.DatabaseException: Expected single row from liquibase.statement.core.SelectFromDatabaseChangeLogLockStatement@44215d9f but got 2
at liquibase.executor.jvm.JdbcExecutor.queryForObject(JdbcExecutor.java:242)
at liquibase.executor.jvm.JdbcExecutor.queryForObject(JdbcExecutor.java:253)
at liquibase.executor.jvm.JdbcExecutor.queryForObject(JdbcExecutor.java:248)
at liquibase.lockservice.StandardLockService.lambda$acquireLock$3(StandardLockService.java:301)
at liquibase.executor.jvm.ChangelogJdbcMdcListener.lambda$query$1(ChangelogJdbcMdcListener.java:54)
at liquibase.Scope.child(Scope.java:193)
at liquibase.Scope.child(Scope.java:169)
at liquibase.executor.jvm.ChangelogJdbcMdcListener.query(ChangelogJdbcMdcListener.java:54)
... 49 common frames omitted
Caused by: liquibase.exception.DatabaseException: Result set larger than one row
at liquibase.util.JdbcUtil.requiredSingleResult(JdbcUtil.java:137)
at liquibase.executor.jvm.JdbcExecutor.queryForObject(JdbcExecutor.java:240)
... 56 common frames omitted


Подробнее здесь: https://stackoverflow.com/questions/795 ... hangeloglo

Вернуться в «JAVA»