В последнее время мы обновили нашу версию liquibase до 3.8.7
При обновлении я столкнулся с проблемой, связанной с таблицей DATABASECHANGELOGLOCK. В таблице есть все те же столбцы, кроме столбца LOCKED, который был изменен с smallint на boolean.
Теперь это вызывает проблему с типами данных. См. Журнал ошибок ниже.
2020 04 08 08:32:29#+00#ERROR#org.springframework.web.context.ContextLoader##anonymous#localhost-startStop-1#na#b515b1a3c#jpsol21c#web##na#na#na#na#Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liquibase' defined in ServletContext resource [/WEB-INF/repository-context.xml]: Invocation of init method failed; nested exception is liquibase.exception.LockException: liquibase.exception.DatabaseException: Error executing SQL UPDATE "B515B1A3C_JPSOL21C"."DATABASECHANGELOGLOCK" SET "LOCKED" = 1, "LOCKEDBY" = 'vsa7421484s.ash.od.sap.biz (10.108.3.107)', "LOCKGRANTED" = '2020-04-08 08:32:29.759' WHERE "ID" = 1 AND "LOCKED" = 0: SAP DBTech JDBC: [266] (at 200): inconsistent datatype: INT type is not comparable with BOOLEAN type.: line 1 col 201 (at pos 200)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1630)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:481)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:312)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:308)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:756)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:443)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:325)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4699)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5165)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:743)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:719)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:970)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1841)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:836)
Caused by: liquibase.exception.LockException: liquibase.exception.DatabaseException: Error executing SQL UPDATE "B515B1A3C_JPSOL21C"."DATABASECHANGELOGLOCK" SET "LOCKED" = 1, "LOCKEDBY" = 'vsa7421484s.ash.od.sap.biz (10.108.3.107)', "LOCKGRANTED" = '2020-04-08 08:32:29.759' WHERE "ID" = 1 AND "LOCKED" = 0: SAP DBTech JDBC: [266] (at 200): inconsistent datatype: INT type is not comparable with BOOLEAN type.: line 1 col 201 (at pos 200)
at liquibase.lockservice.StandardLockService.acquireLock(StandardLockService.java:242)
at liquibase.lockservice.StandardLockService.waitForLock(StandardLockService.java:170)
at liquibase.Liquibase.update(Liquibase.java:196)
at liquibase.Liquibase.update(Liquibase.java:192)
at liquibase.integration.spring.SpringLiquibase.performUpdate(SpringLiquibase.java:431)
at liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:388)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1688)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1626)
... 25 common frames omitted
Caused by: liquibase.exception.DatabaseException: Error executing SQL UPDATE "B515B1A3C_JPSOL21C"."DATABASECHANGELOGLOCK" SET "LOCKED" = 1, "LOCKEDBY" = 'vsa7421484s.ash.od.sap.biz (10.108.3.107)', "LOCKGRANTED" = '2020-04-08 08:32:29.759' WHERE "ID" = 1 AND "LOCKED" = 0: SAP DBTech JDBC: [266] (at 200): inconsistent datatype: INT type is not comparable with BOOLEAN type.: line 1 col 201 (at pos 200)
at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:68)
at liquibase.executor.jvm.JdbcExecutor.update(JdbcExecutor.java:231)
at liquibase.executor.jvm.JdbcExecutor.update(JdbcExecutor.java:205)
at liquibase.lockservice.StandardLockService.acquireLock(StandardLockService.java:215)
... 35 common frames omitted
Уже пытался удалить таблицу DATABASECHANGELOGLOCK, и она все еще не работает. Есть предложения?