Marklogic 如何使用ml gradle更新数据库备份计划设置?

Marklogic 如何使用ml gradle更新数据库备份计划设置?,marklogic,ml-gradle,Marklogic,Ml Gradle,我正在尝试使用ml gradle更改计划的MarkLogic数据库备份设置。我能够使用gradle mlDeploy部署数据库。但在更改其定时备份属性时,再次运行mlDeploy时会出现“数据库配置不同”错误 数据库的当前json文件如下所示: "database-name" : "caspar-test", "range-element-index" : [ { "scalar-type" : "string", "namespace-uri" : "CHANGEME"

我正在尝试使用ml gradle更改计划的MarkLogic数据库备份设置。我能够使用gradle mlDeploy部署数据库。但在更改其定时备份属性时,再次运行mlDeploy时会出现“数据库配置不同”错误

数据库的当前json文件如下所示:

  "database-name" : "caspar-test",
  "range-element-index" : [ {
    "scalar-type" : "string",
    "namespace-uri" : "CHANGEME",
    "localname" : "CHANGEME",
    "collation" : "http://marklogic.com/collation/",
    "range-value-positions" : false,
    "invalid-values" : "reject"
  } ],
  "database-backup": [ {
    "backup-id": "1373474833703299773",
    "backup-enabled": true,
    "backup-directory": "/backup/caspar-test",
    "backup-type": "daily",
    "backup-period": 1,
    "backup-start-time": "13:01:00Z",
    "backup-timestamp": "2019-09-06T13:55:25.243878Z",
    "max-backups": 2,
    "backup-security-database": true,
    "backup-schemas-database": true,
    "backup-triggers-database": true,
    "include-replicas": true,
    "incremental-backup": false,
    "journal-archiving": false,
    "journal-archive-path": "",
    "journal-archive-lag-limit": 15
  } ]
}
对于测试,我将“backup enabled”设置为false。运行ml gradle显示

Logging HTTP response body to assist with debugging: {"errorResponse":{"statusCode":"500", "status":"Internal Server Error", "messageCode":"CMA-ERRORCONFIG", "message":"CMA-ERRORCONFIG (err:FOER0000): MANAGE-CONFLICTINGCONFIGerr:FOER00001.0-mlA conflict has been detected: MANAGE-CONFLICTINGCONFIG: (err:FOER0000) A conflict has been detected:  database configurations differ: database-backupsfalse database configurations differ: database-backups/MarkLogic/manage/models/database-idempotent.xqy7186xdmp:function(fn:QName(\"http://marklogic.com/manage/database/idempotent\",\"check-database-property-idempotent-database-backups\"))(<configuration/>, xs:unsignedLong(\"11315473330229343670\"), <database-backups xmlns=\"http://marklogic.com/manage/database/properties\">...</database-backups>)config<configuration/>dbidxs:unsignedLong(\"11315473330229343670\")prop<database-backups xmlns=\"http://marklogic.com/manage/database/properties\">...</database-backups>alist<database-backup xmlns=\"http://marklogic.com/xdmp/database\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">...</database-backup>plist<database-backup xmlns=\"http://marklogic.com/manage/database/properties\">...</database-backup>compare<database-backup xmlns=\"http://marklogic.com/xdmp/database\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">...</database-backup>1.0-ml/MarkLogic/manage/models/database-idempotent.xqy9011dmodi:check-database-property-update-idempotent(<configuration/>, xs:unsignedLong(\"11315473330229343670\"), <database-backups…

请注意,MarkLogic提供了一个v2 API,其中包含PUT和POST,而v3只接受POST更改。当前的问题源于使用/manage/v3

尝试通过curl或类似的HTTP客户端发出相同的请求-您可能会遇到相同的错误。这就是ml gradle所做的——读取数据库文件的内容,然后将它们发送到ManageAPI。如果您运行“gradle-i mlDeployDatabases”,您将看到ml-gradle所到达的确切端点(而mlDeployDatabases只部署数据库,而不是所有数据库,因此测试速度更快)。谢谢@rjrudin的提示。我现在用curl测试了代码,看到它是直接来自MarkLogic的结果。我仍然不知道这是否正确,对v2api的PUT请求没有应用更改,但这似乎是另一个主题。我会继续深入挖掘。
curl -X POST --anyauth --user user:password -H 'Content-type: application/json' --header "Accept: application/json" -d@file.json http://host.name:8002/manage/v3