CKAN: автоматически удалять таблицы хранилища данных при удалении ресурса.

У меня есть экземпляр ckan, настроенный с включенными плагинами хранилища файлов, хранилища данных и данных.

Когда я создаю новый ресурс, плагин datapusher правильно добавляет новую таблицу в datasoredb и заполняет ее данными.

Но если я обновляю ресурс, выполняется новая задача datapusher, и все обновляется правильно. На другом экземпляре ckan с привязанным к нему ресурсом мне приходится запускать задачу вручную, но все работает нормально.

Проблема возникает, если я удалю ресурс. Таблицы хранилища данных по-прежнему доступны, и даже ссылка на файл по-прежнему активна.

Есть ли способ настроить его для автоматического удаления всех следов ресурса??? Я имею в виду, удалить файлы из хранилища файлов, таблицы из хранилища данных, API, ссылки и т. д.


person opensas    schedule 20.01.2015    source источник
comment
Какую версию CKAN вы используете. В зависимости от версии это может быть или не быть возможным.   -  person Nigel    schedule 26.02.2015
comment
Мы используем 2.2.1 и хотели бы решить эту проблему. Любой, кому интересно, какая версия у него установлена, может узнать по адресу http://‹ВАШ ДОМЕН CKAN›/api/util/status.   -  person richplane    schedule 18.03.2015
comment
Возможно, вам нужно сделать вызов API хранилища данных, чтобы удалить ресурс.   -  person Mr_Thorynque    schedule 23.11.2015
comment
@opensas ты понял это? Я только что зашел в ckan несколько недель назад, и теперь я понимаю, что когда я удаляю ресурс, файл все еще где-то там. удалось удалить файл из системы?   -  person Skaros Ilias    schedule 15.12.2015


Ответы (2)


Я частично подтвердил это поведение с помощью http://demo.ckan.org, которая в настоящее время имеет версию ckan_version: "2.4.1 "

  1. Создать ресурс
  2. Запросить ресурс с помощью толкателя данных
  3. Удалить ресурс
  4. Запросить ресурс через datastore_search API -> все еще работает, можно запросить.
  5. Попытка доступа к файлу ресурсов -> 404 - не найдена.

Будет файл как ошибка.

Возможно, используйте это для удаления ?http://docs.ckan.org/en/latest/maintaining/datastore.html#ckanext.datastore.logic.action.datastore_delete

person user468648    schedule 30.11.2015

Это возможно через CLI:

sudo -u postgres psql datastore_default (предполагается, что хранилище данных установлено из пакета с использованием этих настроек расширения хранилища данных и имени базы данных является datastore_default, а postgres является суперпользователем).

ЗАТЕМ (НЕОБЯЗАТЕЛЬНО НАЙТИ ВСЕ UUID РЕСУРСОВ):

\dt чтобы просмотреть все таблицы

ПОТОМ:

DROP TABLE "{RESOURCE ID}";

(Замените {RESOURCE ID} на UUID ресурса)

person Mat K. Witts    schedule 04.04.2016