[ckan-dev] Empty datastore table in CKAN
Tyler Kennedy
tk at tkte.ch
Wed Feb 24 17:55:48 UTC 2016
Hello Michael,
Until it is merged into CKAN, you can include the tiny changes I made here
- https://github.com/ckan/ckan/pull/2885
This will give you the behaviour you expected from datastore_delete.
Thank you,
Tyler Kennedy
On Wed, Feb 24, 2016 at 12:09 PM, Tyler Kennedy <tk at tkte.ch> wrote:
> My apologies, that first link should be:
>
>
> https://github.com/ckan/ckan/blob/f74575024a472085db2c8238d8f0ff71d888ffaf/ckanext/datastore/logic/action.py#L309
>
> Thank you,
> Tyler Kennedy
>
> On Wed, Feb 24, 2016 at 12:02 PM, Tyler Kennedy <tk at tkte.ch> wrote:
>
>> This line:
>>
>>
>> https://github.com/ckan/ckan/blob/f74575024a472085db2c8238d8f0ff71d888ffaf/ckanext/datastore/db.py#L1169
>>
>> Is removing the filters argument from data_dict. This means that when
>> db.delete is finally called here:
>>
>>
>> https://github.com/ckan/ckan/blob/f74575024a472085db2c8238d8f0ff71d888ffaf/ckanext/datastore/db.py#L1169
>>
>> ... that the database will always be deleted.
>>
>> This is a bug, I will send a PR to correct this shortly.
>>
>> Thank you,
>> Tyler Kennedy
>>
>> On Wed, Feb 24, 2016 at 11:46 AM, Michael Nielsen <mic.niel84 at gmail.com>
>> wrote:
>>
>>> Parsing 'filters': {} actually deletes the table, not just the rows.
>>>
>>> On Wed, Feb 24, 2016 at 3:06 PM, Ian Ward <ian at excess.org> wrote:
>>>
>>>> I don't think this was the question originally asked, but to remove
>>>> all rows with datastore_delete without deleting the table you need to
>>>> pass "filters": {} or similar. If you omit filters completely the
>>>> table iteself will be removed. Would be great to make this clearer in
>>>> the docs.
>>>>
>>>> We don't currently offer a way to delete rows with sql expressions
>>>> like ">". You could issue that kind of update directly with SQL (if
>>>> you have access) or iterate over all the rows to delete with separate
>>>> datastore_delete calls.
>>>>
>>>> On Wed, Feb 24, 2016 at 8:13 AM, Vitor Baptista <
>>>> vitor at vitorbaptista.com> wrote:
>>>> > (As answered in stackoverflow)
>>>> >
>>>> > To delete a datastore table's contents without deleting its
>>>> structure, you
>>>> > simply call "datastore_delete" without passing any "filters".
>>>> >
>>>> > On 24 February 2016 at 12:41, Michael Nielsen <mic.niel84 at gmail.com>
>>>> wrote:
>>>> >>
>>>> >> Question also asked at
>>>> >>
>>>> http://stackoverflow.com/questions/35598133/delete-all-records-with-id-higher-than-x-in-ckan
>>>> .
>>>> >>
>>>> >> I'm trying to use the datastore_api in CKAN (ckan.org) and want to
>>>> delete
>>>> >> all records with an id higher than X - my goal is simply to delete
>>>> ALL
>>>> >> records without deleting the table.
>>>> >>
>>>> >> Docs:
>>>> >>
>>>> http://docs.ckan.org/en/ckan-2.5.1/maintaining/datastore.html?highlight=filter#ckanext.datastore.logic.action.datastore_delete
>>>> >>
>>>> >> Running the API with
>>>> >>
>>>> >> 'filters': {'_id': '0'}
>>>> >>
>>>> >> does work, but setting
>>>> >>
>>>> >> {'_id': '>0'}
>>>> >>
>>>> >> or
>>>> >>
>>>> >> {'_id': '*'} fails.
>>>> >>
>>>> >> How can I empty a table in the datastore without deleting the table?
>>>> >>
>>>> >> The SQL generated in CKAN is:
>>>> >>
>>>> >> ...9b89-7ab1c36c8e00" WHERE ("_id" = '*') ...
>>>> >>
>>>> >> So it make sense why it fails, but I don't know how to use the API
>>>> calls
>>>> >> with either wildcards or "higher than".
>>>> >>
>>>> >> _______________________________________________
>>>> >> ckan-dev mailing list
>>>> >> ckan-dev at lists.okfn.org
>>>> >> https://lists.okfn.org/mailman/listinfo/ckan-dev
>>>> >> Unsubscribe: https://lists.okfn.org/mailman/options/ckan-dev
>>>> >>
>>>> >
>>>> >
>>>> >
>>>> > --
>>>> >
>>>> > Vítor Baptista
>>>> >
>>>> > http://vitorbaptista.com
>>>> >
>>>> >
>>>> > _______________________________________________
>>>> > ckan-dev mailing list
>>>> > ckan-dev at lists.okfn.org
>>>> > https://lists.okfn.org/mailman/listinfo/ckan-dev
>>>> > Unsubscribe: https://lists.okfn.org/mailman/options/ckan-dev
>>>> >
>>>> _______________________________________________
>>>> ckan-dev mailing list
>>>> ckan-dev at lists.okfn.org
>>>> https://lists.okfn.org/mailman/listinfo/ckan-dev
>>>> Unsubscribe: https://lists.okfn.org/mailman/options/ckan-dev
>>>>
>>>
>>>
>>> _______________________________________________
>>> ckan-dev mailing list
>>> ckan-dev at lists.okfn.org
>>> https://lists.okfn.org/mailman/listinfo/ckan-dev
>>> Unsubscribe: https://lists.okfn.org/mailman/options/ckan-dev
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.okfn.org/pipermail/ckan-dev/attachments/20160224/381e6701/attachment-0003.html>
More information about the ckan-dev
mailing list