database-migration - 在 xdmp:document-insert 之后,托管文档在 MarkLogic 10 中不起作用
问题描述
- 第一次使用管理文档
dls:document-insert-and-manage
- 使用更新相同的文档
xdmp:document-insert
文档从 dls 最新版本集合中丢失
cts:search(/scopedIntervention/id , dls:documents-query())
第一次管理文件
<scopedIntervention> <id>someId12345</id> <scopedInterventionName> First Name </scopedInterventionName> <forTestOnly> true </forTestOnly> <inactive> true </inactive> </scopedIntervention>)``` **Document inserted with versioning**
验证文档是否存在于最新文档集合中
cts:search(/scopedIntervention/id , dls:documents-query())
管理的最新集合中存在的文档
更新同一个文档
<scopedIntervention> <id>someId12345</id> <scopedInterventionName> Updated Name </scopedInterventionName> <forTestOnly> true </forTestOnly> <inactive> true </inactive> </scopedIntervention>)``` **Update document to same URI using xdmp:document-insert**
再次验证文档是否存在于最新的文档集合中
cts:search(/scopedIntervention/id , dls:documents-query())
管理的最新集合中不存在文档(从集合中丢失)
使用以下升级步骤应用 DLS 包后,相同的文档显示在列表中 ```xquery version "1.0-ml"; 在“/MarkLogic/dls.xqy”处导入模块命名空间 dls = “ http://marklogic.com/xdmp/dls ”;
dls:set-upgrade-status(fn:false()),
dls:start-upgrade(),
fn:doc("http://marklogic.com/dls/upgrade-task-status.xml"),
dls:latest-validation-results(),
dls:set-upgrade-status(fn:true())```
解决方案
- 使用 xdmp:document-insert 更新同一个文档
您很可能会在此步骤中删除 DLS 最新集合。此外,执行此操作时不会保留版本历史记录。
而不是使用 xdmp:document-insert 您应该使用dls:document-checkout-update-checkin。
推荐阅读
- javascript - 如何根据 if/else 条件修复输入更改时的显示/隐藏按钮
- bash - 我想使用 ftp 通过 bash 脚本从服务器中删除文件
- javascript - 可以与 IE 一起使用的 Object.entries 的替代方案
- c# - 如何使用ajax发布html代码json数组
- javascript - 使用 javascript 正则表达式缩小 html 模板字符串
- c - 为什么会触发 SIGSEGV?
- .htaccess - .htaccess URL重写使用两个参数和一个变量
- sql - oracle sql 澄清在 where 子句中使用 case 条件,错误 sdo_nn 无法在没有索引的情况下进行评估
- html - 如何使div的高度和宽度等于屏幕的宽度和高度?
- asp.net-core-mvc - 属性路由区分通配符和具有相似模式的操作