← Back to team overview

dhis2-devs team mailing list archive

Re: Bulk Deletion of Data

 

Hi Morten

We have been testing the deletion with version 2.25 and have had success
with programs / program stages.

For data sets we are now able to delete dataValues but cannot delete the
dataElements for the following reason:

* Deleting the dataValues creates dataValueAudits
* These dataValueAudits reference dataElements
* Therefore, dataElements cannot be deleted
* We cannot find a way of deleting dataValueAudits (other than through
maintenance but this is only implemented per organisation unit)

Any suggestions would be greatly appreciated.

Many thanks

Alan




On Wed, Oct 28, 2015 at 10:30 AM, Lorill Crees <lcrees@xxxxxxxxxx> wrote:

> Hi Morten,
>
> Thanks for the info regarding events, we'll give it a try.
>
> As for datasets / data values I tried it with "Accept: text/plain" and it
> now works, thanks. Please let me know if that header requirement is going
> to change.
>
> Cheers,
>
> Lorill
>
> On Tue, Oct 27, 2015 at 9:30 PM, Morten Olav Hansen <mortenoh@xxxxxxxxx>
> wrote:
>
>> With blueprint #1
>>> https://blueprints.launchpad.net/dhis2/+spec/webapi-bulk-
>>> deletion-of-tracker-objects
>>> it doesn't mention the deletion of the data values itself. Would the
>>> deletion of events via the web api also cascade delete the underlying data
>>> values?
>>>
>>
>> Yes, it should work that way. What you do is this (for events)
>> { "events": [
>>   { "event": "id1" },
>>   { "event": "id2" }
>> ] }
>>
>> Then send with
>> curl -u user:pass -X POST -d @events.json -H "Content-Type:
>> application/json" http://server:port/api/events?strategy=DELETE
>>
>>
>>> Alternately, how would I delete single tracked entity data values via
>>> the web API? I can't seem to find any API call specifically for these
>>> values.
>>>
>>
>> curl -X DELETE -u user:pass http://server:port/api/events/ID should work
>>
>>
>>> And for datasets, I have tried sending a delete request for a specific
>>> data value but I get a 406. Not sure if I am doing something wrong? I've
>>> pasted my curl and results below for both GET and DELETE.
>>>
>>
>> I'm not sure exactly why we have this requirement, but you need to use -H
>> "Accept: text/plain" (with curl), I will look into it..
>>
>> --
>> Morten
>>
>>
>>>
>>> Thanks,
>>>
>>> Lorill
>>>
>>> curl "http://localhost:8090/dhis/api/dataValues?de=YBl3JnHlR5F&;
>>> pe=2015&ou=qubeTudDNSC" -X GET -u admin:district -v
>>>
>>> *   Trying ::1...
>>>
>>> * Connected to localhost (::1) port 8090 (#0)
>>>
>>> * Server auth using Basic with user 'admin'
>>>
>>> > GET /dhis/api/dataValues?de=YBl3JnHlR5F&pe=2015&ou=qubeTudDNSC
>>> HTTP/1.1
>>>
>>> > Host: localhost:8090
>>>
>>> > Authorization: Basic YWRtaW46ZGlzdHJpY3Q=
>>>
>>> > User-Agent: curl/7.43.0
>>>
>>> > Accept: */*
>>>
>>> >
>>>
>>> < HTTP/1.1 200 OK
>>>
>>> < Server: Apache-Coyote/1.1
>>>
>>> < X-XSS-Protection: 1; mode=block
>>>
>>> < X-Frame-Options: DENY
>>>
>>> < X-Content-Type-Options: nosniff
>>>
>>> < Set-Cookie: JSESSIONID=3F51C4A3F10135A648E45BAF42818AB7; Path=/dhis/;
>>> HttpOnly
>>>
>>> < ETag: "0ab3ca659aa5fc585fa72c6474d6b21df"
>>>
>>> < Content-Type: application/json;charset=UTF-8
>>>
>>> < Content-Language: en-US
>>>
>>> < Content-Length: 10
>>>
>>> < Date: Tue, 27 Oct 2015 19:16:29 GMT
>>>
>>> <
>>>
>>> * Connection #0 to host localhost left intact
>>>
>>> ["396411"]
>>>
>>> -----------
>>>
>>> curl "http://localhost:8090/dhis/api/dataValues?de=YBl3JnHlR5F&;
>>> pe=2015&ou=qubeTudDNSC" -X DELETE -u admin:district -v
>>>
>>> *   Trying ::1...
>>>
>>> * Connected to localhost (::1) port 8090 (#0)
>>>
>>> * Server auth using Basic with user 'admin'
>>>
>>> > DELETE /dhis/api/dataValues?de=YBl3JnHlR5F&pe=2015&ou=qubeTudDNSC
>>> HTTP/1.1
>>>
>>> > Host: localhost:8090
>>>
>>> > Authorization: Basic YWRtaW46ZGlzdHJpY3Q=
>>>
>>> > User-Agent: curl/7.43.0
>>>
>>> > Accept: */*
>>>
>>> >
>>>
>>> < HTTP/1.1 406 Not Acceptable
>>>
>>> < Server: Apache-Coyote/1.1
>>>
>>> < X-XSS-Protection: 1; mode=block
>>>
>>> < X-Frame-Options: DENY
>>>
>>> < X-Content-Type-Options: nosniff
>>>
>>> < Set-Cookie: JSESSIONID=10438B228DF6F9FEF289CA05A3E9CA5F; Path=/dhis/;
>>> HttpOnly
>>>
>>> < Content-Type: text/html;charset=utf-8
>>>
>>> < Content-Language: en
>>>
>>> < Content-Length: 1110
>>>
>>> < Date: Tue, 27 Oct 2015 19:16:35 GMT
>>>
>>> <
>>>
>>> * Connection #0 to host localhost left intact
>>>
>>> <!DOCTYPE html><html><head><title>Apache Tomcat/8.0.21 - Error
>>> report</title><style type="text/css">H1 {font-family:Tahoma,Arial,
>>> sans-serif;color:white;background-color:#525D76;font-size:22px;} H2
>>> {font-family:Tahoma,Arial,sans-serif;color:white;
>>> background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,
>>> sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY
>>> {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;}
>>> B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;}
>>> P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A
>>> {color : black;}A.name {color : black;}.line {height: 1px;
>>> background-color: #525D76; border: none;}</style> </head><body><h1>HTTP
>>> Status 406 - </h1><div class="line"></div><p><b>type</b> Status
>>> report</p><p><b>message</b> <u></u></p><p><b>description</b> <u>The
>>> resource identified by this request is only capable of generating responses
>>> with characteristics not acceptable according to the request "accept"
>>> headers.</u></p><hr class="line"><h3>Apache Tomcat/8.0.21</h3></body></
>>> html>
>>>
>>>
>>>
>>> On Tue, Oct 27, 2015 at 1:07 AM, Morten Olav Hansen <mortenoh@xxxxxxxxx>
>>> wrote:
>>>
>>>> Just FYI, we have two blueprints related to this in 2.22, [1] is
>>>> implemented already and [2] will hopefully come (but we are still
>>>> discussing implementation details for that one)
>>>>
>>>> [1] https://blueprints.launchpad.net/dhis2/+spec/
>>>> webapi-bulk-deletion-of-tracker-objects
>>>> [2] https://blueprints.launchpad.net/dhis2/+spec/soft-event-delete
>>>>
>>>> --
>>>> Morten
>>>>
>>>> On Tue, Oct 27, 2015 at 4:01 PM, Knut Staring <knutst@xxxxxxxxx> wrote:
>>>>
>>>>> My interpretation was that they would like a flag on each datavalue to
>>>>> say whether it is still current - which I guess would require an extension
>>>>> of that table. However, we do have something akin to this, namely the audit
>>>>> functionality, which preserves the history of earlier (overwritten) values
>>>>> - perhaps that could be leveraged?
>>>>>
>>>>> Knut
>>>>>
>>>>> On Tue, Oct 27, 2015 at 5:50 AM, Jason Pickering <
>>>>> jason.p.pickering@xxxxxxxxx> wrote:
>>>>>
>>>>>> Hi Aaron,
>>>>>>
>>>>>> There is no "soft delete" function, if that is what you are after,
>>>>>> but it has been discussed.
>>>>>>
>>>>>> Although there is no direct way as Lars points out, if you know what
>>>>>> you wish to delete, it is still possible.  Namely, if you transmit a ""
>>>>>> value for the value which you wish to delete, it will be deleted. Thus, if
>>>>>> you wish to delete all values for a given dataset/OU/period, you can get
>>>>>> all of the values from the API, then set them all to "", and upload the
>>>>>> data again.  I think you can also use the DELETE verb as documented here (
>>>>>> https://www.dhis2.org/doc/snapshot/en/developer/html/ch01s12.html)
>>>>>> to delete a value.
>>>>>>
>>>>>>
>>>>>> Not sure if that is the functionality you are after though.
>>>>>> Typically, this would be a DB admin's role though and would be done with
>>>>>> SQL, if you are say, going to delete ALL values for a large part of the
>>>>>> hierarchy. The possibility for a whoopsie-moment could be large here.
>>>>>>
>>>>>> Regards,
>>>>>> Jason
>>>>>>
>>>>>>
>>>>>> On Mon, Oct 26, 2015 at 10:37 PM, Aaron Gladders <
>>>>>> agladders@xxxxxxxxxx> wrote:
>>>>>>
>>>>>>> Hi Lars - is there a recommended approach to "deactive" data without
>>>>>>> getting into the database itself?  If not is it worth setting up a
>>>>>>> blueprint for it?  We may have a group interested in funding that
>>>>>>> development.
>>>>>>>
>>>>>>> Thanks,
>>>>>>>
>>>>>>> Aaron
>>>>>>>
>>>>>>> On Thu, Sep 24, 2015 at 2:39 PM, Lars Helge Øverland <
>>>>>>> larshelge@xxxxxxxxx> wrote:
>>>>>>>
>>>>>>>> Hi Lorill,
>>>>>>>>
>>>>>>>> sorry but at the moment there is no such option. So far we have
>>>>>>>> decided not to open up for this to prevent mishaps.
>>>>>>>>
>>>>>>>> regards,
>>>>>>>>
>>>>>>>> Lars
>>>>>>>>
>>>>>>>>
>>>>>>>> On Thu, Sep 24, 2015 at 11:37 PM, Lorill Crees <lcrees@xxxxxxxxxx>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> Just following up on this. Any ideas on the best way to
>>>>>>>>> programatically bulk delete data values?
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>>
>>>>>>>>> Lorill
>>>>>>>>>
>>>>>>>>> On Tue, Sep 15, 2015 at 1:04 PM, Lorill Crees <lcrees@xxxxxxxxxx>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>> I seem to remember a prior thread on this but I can't seem to
>>>>>>>>>> find it. We want to be able to programatically bulk delete data values
>>>>>>>>>> (both aggregate and program/program stage data) via the Web API. Is there a
>>>>>>>>>> way to achieve this?
>>>>>>>>>>
>>>>>>>>>> We don't want to have to do this on a sql level directly via the
>>>>>>>>>> database, nor do we want to have to loop through individual data points in
>>>>>>>>>> order to delete them.
>>>>>>>>>>
>>>>>>>>>> Thanks,
>>>>>>>>>>
>>>>>>>>>> Lorill
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> 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
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Jason P. Pickering
>>>>>> email: jason.p.pickering@xxxxxxxxx
>>>>>> tel:+46764147049
>>>>>>
>>>>>> _______________________________________________
>>>>>> 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
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Knut Staring
>>>>> Dept. of Informatics, University of Oslo
>>>>> Norway: +4791880522
>>>>> Skype: knutstar
>>>>> http://dhis2.org
>>>>>
>>>>> _______________________________________________
>>>>> 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
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> 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
>>>>
>>>>
>>>
>>
>
> _______________________________________________
> 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
>
>

References