Getting error when upgrading from DHIS2 2.30 to 2.31

Dear Community,

I need help!

I am working on upgrading a DHIS2 system from version 2.30 to 2.31.

So far I have gone through these steps:

  1. Apps > Data administration > Maintenance > Drop SQL views
  2. Replaced the 2.30 WAR file with the 2.31 WAR file
  3. Restarted system

That is when I get the error below:

https://pastebin.pl/view/481415b1

  • INFO 2020-10-15 20:58:14,822 Wrapping payloads of metadata versions is not necessary (BeforeMigration_WrapMetadataVersion.java [localhost-startStop-1])
  • ERROR 2020-10-15 20:58:15,117 Migration of schema “public” to version 2.31.1 - Migrations for release v31 failed! Changes successfully rolled back. (Slf4jLog.java [localhost-startStop-1])
  • WARN 2020-10-15 20:58:15,124 Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘org.hisp.dhis.security.acl.AclService’ defined in URL [jar:file:/home/dhis/tomcat/webapps/dhis/WEB-INF/lib/dhis-service-acl-2.31.9.jar!/META-INF/dhis/beans.xml]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘org.hisp.dhis.schema.SchemaService’ defined in URL [jar:file:/home/dhis/tomcat/webapps/dhis/WEB-INF/lib/dhis-service-schema-2.31.9.jar!/META-INF/dhis/beans.xml]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘org.hisp.dhis.schema.PropertyIntrospectorService’: Unsatisfied dependency expressed through field ‘sessionFactory’; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘flyway’ defined in URL [jar:file:/home/dhis/tomcat/webapps/dhis/WEB-INF/lib/dhis-support-db-migration-2.31.9.jar!/META-INF/dhis/beans.xml]: Invocation of init method failed; nested exception is org.flywaydb.core.internal.command.DbMigrate$FlywayMigrateException:
    Migration V2_31_1__Migrations_for_release_v31.sql failed

SQL State : 42601
Error Code : 0
Message : ERROR: syntax error at or near “not”
Position: 53
Location : org/hisp/dhis/db/migration/2.31/V2_31_1__Migrations_for_release_v31.sql (/home/dhis/tomcat/webapps/file:/home/dhis/tomcat/webapps/dhis/WEB-INF/lib/dhis-support-db-migration-2.31.9.jar!/org/hisp/dhis/db/migration/2.31/V2_31_1__Migrations_for_release_v31.sql)
Line : 22
Statement : – FIELD MASK
alter table dataelement
add column if not exists fieldmask character varying(255)
(AbstractApplicationContext.java [localhost-startStop-1])

  • ERROR 2020-10-15 20:58:15,145 Context initialization failed (ContextLoader.java [localhost-startStop-1])
    org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘org.hisp.dhis.security.acl.AclService’ defined in URL [jar:file:/home/dhis/tomcat/webapps/dhis/WEB-INF/lib/dhis-service-acl-2.31.9.jar!/META-INF/dhis/beans.xml]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘org.hisp.dhis.schema.SchemaService’ defined in URL [jar:file:/home/dhis/tomcat/webapps/dhis/WEB-INF/lib/dhis-service-schema-2.31.9.jar!/META-INF/dhis/beans.xml]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘org.hisp.dhis.schema.PropertyIntrospectorService’: Unsatisfied dependency expressed through field ‘sessionFactory’; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘flyway’ defined in URL [jar:file:/home/dhis/tomcat/webapps/dhis/WEB-INF/lib/dhis-support-db-migration-2.31.9.jar!/META-INF/dhis/beans.xml]: Invocation of init method failed; nested exception is org.flywaydb.core.internal.command.DbMigrate$FlywayMigrateException:
    Migration V2_31_1__Migrations_for_release_v31.sql failed

SQL State : 42601
Error Code : 0
Message : ERROR: syntax error at or near “not”
Position: 53
Location : org/hisp/dhis/db/migration/2.31/V2_31_1__Migrations_for_release_v31.sql (/home/dhis/tomcat/webapps/file:/home/dhis/tomcat/webapps/dhis/WEB-INF/lib/dhis-support-db-migration-2.31.9.jar!/org/hisp/dhis/db/migration/2.31/V2_31_1__Migrations_for_release_v31.sql)
Line : 22
Statement : – FIELD MASK
alter table dataelement
add column if not exists fieldmask character varying(255)

at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:749)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:189)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1198)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1100)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:511)
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:761)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
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:5068)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5584)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1091)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1980)
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:748)

Hi @lthengo .
It appears that you are using an unsupported version of postgres. The pg version is below 9.6 in your case. Please upgrade to atleast pg version 9.6 and try it again. Let us know how it goes!

1 Like

@Ameen thank you so much for the tip!