← Back to team overview

dhis2-devs team mailing list archive

Re: Upgrading DHIS2 from 2.21 to 2.24 and using new exporter/importer

 

Hi Morten,

Please find the payload for below request
*curl -H "Content-Type: application/json" -X GET -u username:password
"http://localhost:8888/api/24/metadata?filter=created:gt:2016-07
<http://localhost:8888/api/24/metadata?filter=created:gt:2016-07>" >
metadata.224.newapi.created.json*

Import the payload in a fresh instance for import using

*curl -H "Content-Type: application/json" -X POST --data
@metadata.224.newapi.created.json -u admin:district
“http://localhost:8080/api/24/metadata?atomicMode=NONE
<http://localhost:8080/api/24/metadata?atomicMode=NONE>” >
output_created_besteffort.txt*

If the same payload is run with atomicMode=ALL, I am getting 'Invalid
references' errors which is acceptable. But if it is run with
atomicMode=NONE, it is throwing the error for which the complete stack
trace is attached earlier. filename: '*output_created_besteffort_trace.txt'*

Let me know if the complete payload or any other details are required from
my end.


Thanks
Aamer.



On Thu, Sep 1, 2016 at 8:52 AM, Morten Olav Hansen <morten@xxxxxxxxx> wrote:

> Hi Aamer
>
> Could you please share the payload of the object where this happen?
>
> --
> Morten Olav Hansen
> Senior Engineer, DHIS 2
> University of Oslo
> http://www.dhis2.org
>
> On Fri, Aug 26, 2016 at 9:13 PM, Aamer Mohammed <aamerm@xxxxxxxxxxxxxxxx>
> wrote:
>
>> Hi Morten,
>>
>> The Importer was run with atomicMode=ALL. Though the payload is huge,
>> only few errors were shown in ImportSummary. As per errors in previous
>> ImportSummary, I have done below.
>> 1) ensured the 'short name' field is unique for each of the 'data
>> elements' and 'data element group' as well
>> 2) UID of admin, Super User, tracked entity was changed in payload to be
>> same to where it is getting imported.
>> I have manually resolved them and ran the importer again with
>> atomicMode=ALL.
>>
>> I got exception as attached in trace file 'output_besteffort_trace.txt'
>> Would these kind of issues be known only after the import has failed? and
>> we need to resolve them one-by-one and as-and-when the importer throws
>> them? Is there any note which has the details about the constraints being
>> introduced in a new DHIS version?
>>
>> Alternatively, If we export a filtered set of metadata using '
>> /api/24/metadata?filter=lastUpdated:gt:2016-05' and run the importer
>> with atomicMode=NONE
>>
>> *curl -H "Content-Type: application/json" -X POST --data
>> @metadata.224.newapi.json -u admin:district
>> “http://localhost:8080/api/24/metadata?atomicMode=NONE
>> <http://localhost:8080/api/24/metadata?atomicMode=NONE>” >
>> output_created_besteffort_trace.txt*
>>
>> Getting below exception in trace. Complete trace also attached.
>> -----
>> * INFO 2016-08-26 15:58:38,217 (admin) Creating 57 object(s) of type
>> ReportTable (DefaultObjectBundleService.java [qtp289378424-12])
>> org.hibernate.TransientObjectException: object references an unsaved
>> transient instance - save the transient instance before flushing:
>> org.hisp.dhis.indicator.Indicator
>> ------
>> Any suggestions please.
>>
>>
>> Thanks
>> Aamer.
>>
>>
>> On Tue, Aug 23, 2016 at 11:19 AM, Morten Olav Hansen <morten@xxxxxxxxx>
>> wrote:
>>
>>> Hi Aamer
>>>
>>> Probably what is happening is that the new database has some constraints
>>> that the old one doesn't. We have had some issues with hibernate in the
>>> past, and for certain databases that means that many of the constraints was
>>> not applied..
>>>
>>> If you look at the messages, you will see that e.g `shortName` must be
>>> unique for data elements.. the list of errors is not big though, probably
>>> you can go through the payload and manually update the objects which has
>>> issues?
>>>
>>> Another issue I see is that you are importing users, and those UIDs was
>>> only stabilized in 2.23.. so you might want to also manually update those
>>> (again, should not be a big job), this is not done as a startup routine..
>>> just done when creating the admin user etc in a fresh database
>>>
>>> --
>>> Morten Olav Hansen
>>> Senior Engineer, DHIS 2
>>> University of Oslo
>>> http://www.dhis2.org
>>>
>>> On Tue, Aug 23, 2016 at 12:00 PM, Aamer Mohammed <
>>> aamerm@xxxxxxxxxxxxxxxx> wrote:
>>>
>>>> Any thoughts please on the below approach. Let us know if any details
>>>> are required from our end around this.
>>>>
>>>> On Wed, Aug 17, 2016 at 1:18 PM, Aamer Mohammed <
>>>> aamerm@xxxxxxxxxxxxxxxx> wrote:
>>>>
>>>>> Hi Morten,
>>>>>
>>>>> We have our metadata configured on a DHIS 2.21 instance. We have
>>>>> sequentially upgraded this instance to 2.22, 2.23 and 2.24 by following the
>>>>> upgrade notes for each of them.
>>>>>
>>>>> We want to export the metadata from this upgraded 2.24 instance and
>>>>> import it to a fresh instance which is already on 2.24. We followed the
>>>>> below steps.
>>>>> 1) Export the metadata from the upgraded 2.24 instance using the new
>>>>> exporter
>>>>> *curl -H "Content-Type: application/json" -X GET -u username:password
>>>>> http://xxxx:8080/api/24/metadata.json
>>>>> <http://xxxx:8080/api/24/metadata.json> > metadata.224.newapi.json *
>>>>>
>>>>> 2) Import the metadata using the new importer to a fresh instance
>>>>> which is already on 2.24
>>>>> *curl -H "Content-Type: application/json" -X POST --data
>>>>> @metadata.224.newapi.json -u username:password
>>>>> http://yyyy:8080/api/24/metadata <http://yyyy:8080/api/24/metadata> >
>>>>> output.txt*
>>>>>
>>>>> We see that none of the objects are getting imported. The complete
>>>>> response of the importer is attached below. Any thoughts please. Also let
>>>>> me know if any further details are required from our end.
>>>>>
>>>>>
>>>>> Thanks
>>>>> Aamer.
>>>>>
>>>>
>>>>
>>>
>>
>

Attachment: metadata.224.newapi.created.json
Description: application/json


Follow ups

References