← Back to team overview

dhis2-devs team mailing list archive

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

 

That's interesting.

@Lars any suggestions why this happens? I guess there is something wrong
with our mapping. Will have a look tomorrow.

-- 
Morten Olav Hansen
Senior Engineer, DHIS 2
University of Oslo
http://www.dhis2.org

On Mon, Sep 12, 2016 at 5:42 PM, Victor Garcia <vgarciabnz@xxxxxxxxx> wrote:

> Hi Morten, Sultan,
>
> I think we know the reason of duplicates: categoryOptionGroups are shared
> between categoryOptionGroupSets, for example, ">= 15" is used in three
> categoryOptionGroupSets (Paediatrics, HIV and general). In the API,
> categoryOptionGroups appear duplicated as many times as they are re-used.
>
> We don't know if sharing categoryOptionGroups is something to avoid, but
> it seems to be the cause of this issue.
>
> Regards,
>
> Víctor
>
> On 12 September 2016 at 09:41, Morten Olav Hansen <morten@xxxxxxxxx>
> wrote:
>
>> Hi again
>>
>> Would it be possible to share your database with me? I haven't seen this
>> issues anywhere else.
>>
>> --
>> Morten Olav Hansen
>> Senior Engineer, DHIS 2
>> University of Oslo
>> http://www.dhis2.org
>>
>> On Mon, Sep 12, 2016 at 2:28 PM, Sultanahamar Mohammad <
>> sultanm@xxxxxxxxxxxxxxxx> wrote:
>>
>> > Hi Morten,
>> >
>> > This is what our table is showing up when we say \d dataelement. I think
>> > there is nothing suspicious out here.
>> >
>> >
>> > ​
>> > Regards,
>> > Sultan Ahamar.
>> >
>> > On Fri, Sep 9, 2016 at 2:13 PM, Morten Olav Hansen <morten@xxxxxxxxx>
>> > wrote:
>> >
>> >> I'm not sure what is causing it, but it shouldn't be allowed to begin
>> >> with. Is there any constraint on the UID column in your database?
>> >>
>> >> [image: Inline image 1]
>> >>
>> >> --
>> >> Morten Olav Hansen
>> >> Senior Engineer, DHIS 2
>> >> University of Oslo
>> >> http://www.dhis2.org
>> >>
>> >> On Fri, Sep 9, 2016 at 12:31 PM, Sultanahamar Mohammad <
>> >> sultanm@xxxxxxxxxxxxxxxx> wrote:
>> >>
>> >>> Hi Morten,
>> >>>
>> >>> Hope you are doing good. Let us know your thoughts on the above issue
>> >>> and please let us know if you need any information that you might
>> require.
>> >>>
>> >>> Regards,
>> >>> Sultan Ahamar.
>> >>>
>> >>> On Tue, Sep 6, 2016 at 6:14 PM, Sultanahamar Mohammad <
>> >>> sultanm@xxxxxxxxxxxxxxxx> wrote:
>> >>>
>> >>>> Hi Morten,
>> >>>>
>> >>>> We have pulled latest code from 2.24 and tried import /  export
>> again.
>> >>>> We have some interesting observations
>> >>>>
>> >>>> *DB snapshot:*
>> >>>>
>> >>>>
>> >>>> ​
>> >>>> There are no duplicate items in DB. We double checked.
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> *Entity endpoint snapshot:*
>>
>> >>>>
>> >>>> ​Interestingly we found few duplicate entities when we try to fetch
>> >>>> this data through the API. In Maintenance app, we are not able to
>> see these
>> >>>> duplicate entities. Does it also explain why we get repeating
>> entries (with
>> >>>> same UID's) in the full export JSON as well?  Let us know on how to
>> proceed
>> >>>> and if you need more input.
>> >>>>
>> >>>> Thanks for all the help in advance.
>> >>>>
>> >>>> Regards,
>> >>>> Sultan Ahamar.
>> >>>>
>> >>>>
>> >>>> On Tue, Sep 6, 2016 at 9:34 AM, Morten Olav Hansen <morten@xxxxxxxxx
>> >
>> >>>> wrote:
>> >>>>
>> >>>>> Hi Vanya
>> >>>>>
>> >>>>> This should now have been fixed in master and 224. It will now do a
>> >>>>> global UID check first, and report back any duplicates, if it finds
>> a
>> >>>>> duplicate it will remove them from the import and report back an
>> >>>>> `ErrorReport` (as it would do with other validation issues). So if
>> it finds
>> >>>>> a duplicate, you will need to set atomic mode to NONE to have it
>> import and
>> >>>>> ignore the duplicates.
>> >>>>>
>> >>>>> (btw, there was several duplicates in your file, not sure how that
>> >>>>> happened.. maybe something needs to be cleaned in your source
>> instance)
>> >>>>>
>> >>>>> --
>> >>>>> Morten Olav Hansen
>> >>>>> Senior Engineer, DHIS 2
>> >>>>> University of Oslo
>> >>>>> http://www.dhis2.org
>> >>>>>
>> >>>>> On Mon, Sep 5, 2016 at 2:37 PM, Morten Olav Hansen <
>> morten@xxxxxxxxx>
>> >>>>> wrote:
>> >>>>>
>> >>>>>> Hi Vanya
>> >>>>>>
>> >>>>>> This should have been caught by the importer... but there are
>> several
>> >>>>>> duplicates without the file you sent me, MaO4Ik8f34O is used in 3
>> category
>> >>>>>> option groups, same with oqeVQ71LCgY..
>> >>>>>>
>> >>>>>> I will look into making the validation process more robust.. but at
>> >>>>>> least you should know that this file have issues
>> >>>>>>
>> >>>>>> --
>> >>>>>> Morten Olav Hansen
>> >>>>>> Senior Engineer, DHIS 2
>> >>>>>> University of Oslo
>> >>>>>> http://www.dhis2.org
>> >>>>>>
>> >>>>>> On Mon, Sep 5, 2016 at 1:20 PM, Morten Olav Hansen <
>> morten@xxxxxxxxx>
>> >>>>>> wrote:
>> >>>>>>
>> >>>>>>> Ok, thanks Vanya, I'm looking into it now
>> >>>>>>>
>> >>>>>>> --
>> >>>>>>> Morten Olav Hansen
>> >>>>>>> Senior Engineer, DHIS 2
>> >>>>>>> University of Oslo
>> >>>>>>> http://www.dhis2.org
>> >>>>>>>
>> >>>>>>> On Thu, Sep 1, 2016 at 7:28 PM, Vanya Seth <
>> vanyas@xxxxxxxxxxxxxxxx>
>> >>>>>>> wrote:
>> >>>>>>>
>> >>>>>>>> Hi Morten
>> >>>>>>>>
>> >>>>>>>> Thanks for the response.
>> >>>>>>>>
>> >>>>>>>> We ran into another issue while trying to do a full export and
>> >>>>>>>> import.
>> >>>>>>>>
>> >>>>>>>> As per the previous conversations we took care of all data
>> >>>>>>>> migrations (as per the new constraints on the DB- pretty much
>> caught by the
>> >>>>>>>> Importer during the validation phase itself).
>> >>>>>>>>
>> >>>>>>>> Having done that we run into this issue:
>> >>>>>>>> The 'categoryoptiongroup' import is failing with constraint
>> >>>>>>>> violation for the UID. We checked the data and there is no
>> repeating UID in
>> >>>>>>>> the  database.
>> >>>>>>>>
>> >>>>>>>> The error text is attached for your reference, as well the
>> payload
>> >>>>>>>> used for the import.
>> >>>>>>>>
>> >>>>>>>> Thanks for all the help in advance.
>> >>>>>>>>
>> >>>>>>>> Regards
>> >>>>>>>> Vanya
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>> On Thu, Sep 1, 2016 at 11:10 AM, Morten Olav Hansen <
>> >>>>>>>> morten@xxxxxxxxx> wrote:
>> >>>>>>>>
>> >>>>>>>>> Thanks Aamer, I'm looking at a similar bug right now.. seems
>> some
>> >>>>>>>>> objects don't get their deps properly attached..
>> >>>>>>>>>
>> >>>>>>>>> --
>> >>>>>>>>> Morten Olav Hansen
>> >>>>>>>>> Senior Engineer, DHIS 2
>> >>>>>>>>> University of Oslo
>> >>>>>>>>> http://www.dhis2.org
>> >>>>>>>>>
>> >>>>>>>>> On Thu, Sep 1, 2016 at 12:36 PM, Aamer Mohammed <
>> >>>>>>>>> aamerm@xxxxxxxxxxxxxxxx> wrote:
>> >>>>>>>>>
>> >>>>>>>>>> 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:201
>> 6-07
>> >>>>>>>>>> <http://localhost:8888/api/24/metadata?filter=created:gt:201
>> 6-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
>> [truncated for moderation]
>> _______________________________________________
>> 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