CKAN:删除资源时自动删除数据存储表

时间:2015-01-20 06:29:37

标签: datastore ckan

我有一个配置了filestore,datastore和datapusher插件的ckan实例。

当我创建新资源时,datapusher插件会正确地将新表添加到datasoredb并用数据填充它。

但是,如果我更新资源,则会执行新的datapusher任务,并且所有内容都会正确更新。在另一个链接到它的资源的ckan实例上,我必须手动运行任务,但一切正常。

如果删除资源,问题就出现了。数据存储表仍然可用,甚至文件的链接仍然有效。

是否有某种方法可以将其配置为自动移动资源的每个跟踪???我的意思是,删除文件存储中的文件,数据存储区中的表,api,链接等。

2 个答案:

答案 0 :(得分:0)

我用http://demo.ckan.org部分确认了此行为,目前是ckan_version:" 2.4.1"

  1. 创建资源
  2. 通过数据推送器查询资源
  3. 删除资源
  4. 通过datastore_search API查询资源 - >仍然可以查询。
  5. 尝试访问资源文件 - > 404 - 未找到。
  6. 将存档为错误。

    也许用它来删除?http://docs.ckan.org/en/latest/maintaining/datastore.html#ckanext.datastore.logic.action.datastore_delete

答案 1 :(得分:0)

这可以通过CLI:

static int partition(int[] a){ int pivot = a[0]; int temp, index = 0; int last = a.length -1; for(int i = 1; i < a.length; i++){ //If pivot > current element, swap elements if( a[i] <= pivot){ temp = a[i]; a[i] = pivot; a[i-1] = temp; index = i; } //If pivot < current elmt, swap current elmt and last > index of pivot else if( a[i] > pivot && last > i){ temp = a[i]; a[i] = a[last]; a[last] = temp; last -= 1; i--; } else break; } return index; } (假设使用these Datastore Extension settings从数据包安装数据存储,数据库名称为sudo -u postgres psql datastore_defaultdatastore_default为超级用户。)

那么(可以找到所有资源UUID&#39;)

postgres列出所有表格

THEN:

\dt

(将{RESOURCE ID}替换为资源UUID)