DSpace CRIS 2022版本批量移动大量条目至其他集合的方法咨询
DSpace-CRIS 2022.02 批量移动条目问题解决方案
一、你当前的方法是否正确?
collection-export + bulk-import的思路方向是对的,但操作未生效的核心问题是Excel文件的配置不符合工具要求,从日志Found 0 metadata groups to process可以看出,工具没有识别到你设置的移动操作指令。
二、如何用这两个工具实现批量移动?
针对DSpace-CRIS 2022.02版本,严格按以下步骤操作:
导出旧集合条目
- 执行导出命令:
dspace collection-export -c [旧集合UUID] -f export_items.xls - 导出的Excel需包含
item.uuid或item.handle列(用于定位条目)。
- 执行导出命令:
修改Excel文件(关键)
- 添加大写的ACTION列,列值统一设为
ADD_TO_COLLECTION(工具对大小写敏感); - 添加大写的COLLECTION列,填入目标集合的UUID(必须是UUID,不能用集合名称);
- 无需修改其他元数据列,保持导出原样即可。
- 添加大写的ACTION列,列值统一设为
执行批量导入
- 执行命令(
-i参数为实际执行,不加则是测试模式):dspace bulk-import -f export_items_modified.xls -i - 查看日志,若出现
Processed X items successfully则说明操作生效。
- 执行命令(
三、排查与替代方案
如果上述方法仍不生效,可按以下方向排查:
- 检查Excel列名:必须是
ACTION和COLLECTION,大小写不能错; - 确认目标集合UUID正确:用
dspace collection-list命令查看所有集合的UUID; - 确保执行命令的用户拥有管理员权限;
- 测试单条数据时,确保Excel仅保留一行有效数据,且UUID/handle正确。
更可靠的批量移动替代方案
若Excel方法始终有问题,可直接用命令行脚本批量操作:
- 导出旧集合的条目UUID列表:
dspace collection-export -c [旧集合UUID] -f items_list.txt -t - 编写shell脚本批量移动:
#!/bin/bash OLD_COLLECTION="旧集合UUID" NEW_COLLECTION="目标集合UUID" while read ITEM_UUID; do # 添加到新集合 dspace item-add -c $NEW_COLLECTION -i $ITEM_UUID # 从旧集合移除 dspace item-remove -c $OLD_COLLECTION -i $ITEM_UUID done < items_list.txt - 赋予脚本执行权限并运行:
chmod +x move_items.sh ./move_items.sh
内容的提问来源于stack exchange,提问作者TotallyNormalHuman
相关产品推荐
相关产品推荐

