如何更新CKAN数据集的metadata_created字段?数据库修改后API/UI不生效
批量修改CKAN数据集
metadata_created字段后API/UI未同步的问题 我需要批量修正一批从旧系统迁移至CKAN的数据集的metadata_created字段(这些数据集在CKAN中的创建时间记录有误)。
尝试过的操作:
- 首先尝试用ckanapi更新该字段,但发现
metadata_created无法通过API修改 - 直接通过psql修改CKAN数据库的
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对数据集其他字段做微小修改可以触发更新,让修改后的metadata_created显示出来,但这个方案不适用于大量数据集的批量操作。
疑问:
是否需要刷新或清除CKAN的缓存才能让直接修改数据库的metadata_created字段值在API/UI中生效?
内容的提问来源于stack exchange,提问作者PlanR
相关产品推荐
相关产品推荐

