首页 > 解决方案 > 在 xdmp:document-insert 之后,托管文档在 MarkLogic 10 中不起作用

问题描述

  1. 第一次使用管理文档dls:document-insert-and-manage
  2. 使用更新相同的文档xdmp:document-insert
  3. 文档从 dls 最新版本集合中丢失 cts:search(/scopedIntervention/id , dls:documents-query())

  4. 第一次管理文件

    <scopedIntervention>
      <id>someId12345</id>
      <scopedInterventionName>
        First Name
      </scopedInterventionName>
      <forTestOnly>
        true
      </forTestOnly>
      <inactive>
        true
      </inactive>
    </scopedIntervention>)```
    **Document inserted with versioning**
    
  5. 验证文档是否存在于最新文档集合中

    cts:search(/scopedIntervention/id , dls:documents-query())

    管理的最新集合中存在的文档

  6. 更新同一个文档

    <scopedIntervention>
      <id>someId12345</id>
      <scopedInterventionName>
        Updated Name
      </scopedInterventionName>
      <forTestOnly>
        true
      </forTestOnly>
      <inactive>
        true
      </inactive>
    </scopedIntervention>)```
    
    **Update document to same URI using xdmp:document-insert**
    
  7. 再次验证文档是否存在于最新的文档集合中

    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())```

标签: database-migrationmarklogicdatabase-restoremarklogic-7marklogic-10

解决方案


  1. 使用 xdmp:document-insert 更新同一个文档

您很可能会在此步骤中删除 DLS 最新集合。此外,执行此操作时不会保留版本历史记录。

而不是使用 xdmp:document-insert 您应该使用dls:document-checkout-update-checkin


推荐阅读