← Back to team overview

dhis2-devs team mailing list archive

Re: Upgrading from 2.6

 

Hi Jason,

had a quick look. It seems the issue is that we have multiple startup
routines, in this case first one DataElementDefaultDimensionPopulator that
populates the default dimensional categories, then the TableAlteror which
adds the new columns for dataelementcategory called "datadimensions". Now
the problem is that the TableAlteror depends on the
DataElementDefaultDimensionPopulator to have run earlier, and in this case,
the DataElementDefaultDimensionPopulator depends on the TableAlteror to
have run earlier.

So fixing it would require us to start splitting up the TableAlteror. This
problem will not surfeace unless upgrading from very old versions, or from
deleting the default categories. We could look into it later. Your queries
will fix the problem. I would have thrown in a check to avoid overwriting
existing rows to be on the safe side:

UPDATE dataelementcategory set datadimension=FALSE where datadimension IS
NULL;

cheers

Lars




On Mon, Jan 20, 2014 at 3:57 PM, Jason Pickering <
jason.p.pickering@xxxxxxxxx> wrote:

> Looks like there maybe something missing in the startup scripts. After
> this..
>
> UPDATE dataelementcategory set datadimension=FALSE;
> UPDATE dataelementcategory set dimensiontype='disaggregation';
> UPDATE categorycombo set skiptotal = FALSE;
>
> Things seemed to work.
>
> Regards,
> Jason
>
>
>
> On Mon, Jan 20, 2014 at 4:36 PM, Jason Pickering <
> jason.p.pickering@xxxxxxxxx> wrote:
>
>> Hi there. Attempting to upgrade a rather old version of DHIS2 (versoin
>> 2.6) and running into some issues, not surprisingly. I guess maybe
>> upgrading to 2.14 might be too much to ask in one go, so maybe some advice
>> there would be useful.
>>
>> Anyway, here is what I am getting from the latest 2.14.
>>
>> Any help appreciated.
>>
>> Regards,
>> Jason
>>
>>
>> Jan 20, 2014 2:32:06 PM org.apache.catalina.startup.HostConfig deployWAR
>> INFO: Deploying web application archive /home/dhis/tomcat/webapps/dhis.war
>> * INFO  2014-01-20 14:32:16,689 System property dhis2.home not set
>> (DefaultLocationManager.java [pool-2-thread-1])
>> * INFO  2014-01-20 14:32:16,694 Environment variable DHIS2_HOME points to
>> /home/dhis/dhis_home (DefaultLocationManager.java [pool-2-thread-1])
>> * INFO  2014-01-20 14:32:19,018 Hibernate configuration loaded, using
>> dialect: org.hibernate.dialect.PostgreSQLDialect
>> (DefaultHibernateConfigurationProvider.java [pool-2-thread-1])
>> * ERROR 2014-01-20 14:32:39,492 HHH000388: Unsuccessful: alter table
>> datavalue_audit add constraint fk_datavalueaudit_datavalue foreign key
>> (dataelementid, periodid, sourceid, categoryoptioncomboid,
>> attributeoptioncomboid) references datavalue (SchemaUpdate.java
>> [pool-2-thread-1])
>> * ERROR 2014-01-20 14:32:39,494 ERROR: constraint
>> "fk_datavalueaudit_datavalue" for relation "datavalue_audit" already exists
>> (SchemaUpdate.java [pool-2-thread-1])
>> * ERROR 2014-01-20 14:32:39,499 HHH000388: Unsuccessful: alter table
>> mapview add constraint fk_mapview_maplegendsetid foreign key (legendsetid)
>> references maplegendset (SchemaUpdate.java [pool-2-thread-1])
>> * ERROR 2014-01-20 14:32:39,500 ERROR: constraint
>> "fk_mapview_maplegendsetid" for relation "mapview" already exists
>> (SchemaUpdate.java [pool-2-thread-1])
>> * ERROR 2014-01-20 14:32:39,504 HHH000388: Unsuccessful: alter table
>> validationrulegroupmembers add constraint
>> fk_validationrulegroupmembers_validationrulegroupid foreign key
>> (validationgroupid) references validationrulegroup (SchemaUpdate.java
>> [pool-2-thread-1])
>> * ERROR 2014-01-20 14:32:39,505 ERROR: constraint
>> "fk_validationrulegroupmembers_validationrulegroupid" for relation
>> "validationrulegroupmembers" already exists (SchemaUpdate.java
>> [pool-2-thread-1])
>> * ERROR 2014-01-20 14:32:39,510 HHH000388: Unsuccessful: alter table
>> validationrulegroupuserrolestoalert add constraint
>> fk_validationrulegroupuserrolestoalert_validationgroupid foreign key
>> (validationgroupid) references validationrulegroup (SchemaUpdate.java
>> [pool-2-thread-1])
>> * ERROR 2014-01-20 14:32:39,511 ERROR: constraint
>> "fk_validationrulegroupuserrolestoalert_validationgroupid" for relation
>> "validationrulegroupuserrolestoalert" already exists (SchemaUpdate.java
>> [pool-2-thread-1])
>> * INFO  2014-01-20 14:32:47,778 Found the following message senders:
>> [org.hisp.dhis.message.EmailMessageSender@1d1f5801,
>> org.hisp.dhis.sms.SmsMessageSender@74cab896] (DefaultMessageService.java
>> [pool-2-thread-1])
>> * INFO  2014-01-20 14:32:55,672 Detected apps: [] (DefaultAppManager.java
>> [pool-2-thread-1])
>> * INFO  2014-01-20 14:33:00,922 Executing startup routine [1 of 11,
>> runlevel 1]: PeriodTypePopulator (DefaultStartupRoutineExecutor.java
>> [pool-2-thread-1])
>> * INFO  2014-01-20 14:33:00,963 Executing startup routine [2 of 11,
>> runlevel 1]: DataElementDefaultDimensionPopulator
>> (DefaultStartupRoutineExecutor.java [pool-2-thread-1])
>> * ERROR 2014-01-20 14:33:01,156 org.hibernate.PropertyAccessException:
>> Null value was assigned to a property of primitive type setter of
>> org.hisp.dhis.dataelement.DataElementCategory.dataDimension
>>         at
>> org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:108)
>>         at
>> org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:710)
>>         at
>> org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:371)
>>         at
>> org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:4499)
>>         at
>> org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:185)
>>         at
>> org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:137)
>>         at
>> org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:1103)
>>         at org.hibernate.loader.Loader.processResultSet(Loader.java:960)
>>         at org.hibernate.loader.Loader.doQuery(Loader.java:910)
>>         at
>> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:341)
>>         at org.hibernate.loader.Loader.doList(Loader.java:2516)
>>         at
>> org.hibernate.loader.Loader.listUsingQueryCache(Loader.java:2361)
>>         at org.hibernate.loader.Loader.list(Loader.java:2324)
>>         at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:490)
>>         at
>> org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:355)
>>         at
>> org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:195)
>>         at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1268)
>>         at org.hibernate.internal.QueryImpl.list(QueryImpl.java:101)
>>         at
>> org.hisp.dhis.common.hibernate.HibernateIdentifiableObjectStore.getAllEqName(HibernateIdentifiableObjectStore.java:146)
>>         at
>> org.hisp.dhis.dataelement.DefaultDataElementCategoryService.getDataElementCategoryByName(DefaultDataElementCategoryService.java:175)
>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>         at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>         at java.lang.reflect.Method.invoke(Method.java:606)
>>         at
>> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
>>         at
>> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
>>         at
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
>>         at
>> org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)
>>         at
>> org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)
>>         at
>> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)
>>         at
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
>>         at
>> org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91)
>>         at
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
>>         at
>> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
>>         at com.sun.proxy.$Proxy35.getDataElementCategoryByName(Unknown
>> Source)
>>         at
>> org.hisp.dhis.dataelement.DataElementDefaultDimensionPopulator.execute(DataElementDefaultDimensionPopulator.java:101)
>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>         at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>         at java.lang.reflect.Method.invoke(Method.java:606)
>>         at
>> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
>>         at
>> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
>>         at
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
>>         at
>> org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)
>>         at
>> org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)
>>         at
>> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)
>>         at
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
>>         at
>> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
>>         at com.sun.proxy.$Proxy78.execute(Unknown Source)
>>         at
>> org.hisp.dhis.system.startup.DefaultStartupRoutineExecutor.execute(DefaultStartupRoutineExecutor.java:115)
>>         at
>> org.hisp.dhis.system.startup.DefaultStartupRoutineExecutor.execute(DefaultStartupRoutineExecutor.java:85)
>>         at
>> org.hisp.dhis.system.startup.StartupListener.contextInitialized(StartupListener.java:68)
>>         at
>> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4779)
>>         at
>> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273)
>>         at
>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>>         at
>> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895)
>>         at
>> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871)
>>         at
>> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)
>>         at
>> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:958)
>>         at
>> org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1599)
>>         at
>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
>>         at
>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
>>         at java.util.concurrent.FutureTask.run(FutureTask.java:166)
>>         at
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>>         at
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>>         at java.lang.Thread.run(Thread.java:724)
>> Caused by: java.lang.IllegalArgumentException
>>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>         at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>         at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>         at java.lang.reflect.Method.invoke(Method.java:606)
>>         at
>> org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:65)
>>         ... 65 more
>>
>>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~dhis2-devs
> Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dhis2-devs
> More help   : https://help.launchpad.net/ListHelp
>
>

Follow ups

References