如何更新数据集的CKANmetadata_created字段?

问题描述 投票:0回答:1

我想更新多个数据集的

metadata_created
字段(这些数据集是从以前的系统迁移的,因此在 CKAN 中的创建时间不正确)。

我尝试使用 ckanapi 来执行此操作,但无法使用 API 更新该字段,如之前所述:CKAN:更新metadata_created 和metadata_modified 信息

然后我尝试直接通过 psql 更新

metadata_created
表中的
package
字段:

ckan=> select id, metadata_created, metadata_modified from package where id = 'a0f8e50d-aa28-4c5a-8aca-818d920244c9';
                  id                  |     metadata_created      |     metadata_modified
--------------------------------------+---------------------------+----------------------------
 a0f8e50d-aa28-4c5a-8aca-818d920244c9 | 2023-07-07 07:27:52.60954 | 2023-07-25 06:03:54.922081
(1 row)

ckan=> update package
set metadata_created = '1999-12-31T23:59:59'
where id = 'a0f8e50d-aa28-4c5a-8aca-818d920244c9';                                                                            UPDATE 1

ckan=> select id, metadata_created, metadata_modified from package where id = 'a0f8e50d-aa28-4c5a-8aca-818d920244c9';
                  id                  |  metadata_created   |     metadata_modified
--------------------------------------+---------------------+----------------------------
 a0f8e50d-aa28-4c5a-8aca-818d920244c9 | 1999-12-31 23:59:59 | 2023-07-25 06:03:54.922081
(1 row)

..但这随后并没有通过 API/UI 反映出来:

$ ckanapi action package_show id=a0f8e50d-aa28-4c5a-8aca-818d920244c9 -r https://our.ckan.tld | jq  '.metadata_created'
"2023-07-07T07:27:52.609540"

是否需要刷新/刷新缓存才能使此更新可见?

(请注意,通过 API 对数据集中的其他字段进行微小更改似乎可以使更新可见,但这对于我们需要更新的大量记录来说并不是一个实用的解决方案)。

谢谢。

罗伯特。

我用所需的

package
值更新了
metadata_created
表行,并期望这会反映在 UI/API 中。

ckan
1个回答
0
投票

解决方案是重建 Solr 索引,我们通过从 CKAN 容器之一运行此命令来实现:

ckan -c /path/to/ckan.ini search-index rebuild

运行上述命令后,“ckanapi”中的元数据时间戳与 postgres 数据库中的元数据时间戳相匹配。

© www.soinside.com 2019 - 2024. All rights reserved.