如何通过ml-gradle仅部署数据库备份计划而不应用其他配置?
仅部署MarkLogic数据库备份计划的解决方案
问题结论
可以仅部署数据库备份计划,但ml-gradle默认会为未指定森林配置的数据库自动创建两个默认森林(主森林+副本森林),这是工具的默认行为。
原因分析
当你的数据库配置仅包含备份相关参数、未明确指定森林配置时,ml-gradle会遵循MarkLogic的数据库基本要求(至少需要一个森林存储数据),自动补全默认的森林创建逻辑,从而生成两个额外森林。
解决办法
方法1:修改数据库配置文件,禁用自动森林创建
在src/main/backup-config/databases/database.json中添加"forests": []配置项,明确告知ml-gradle不需要为该数据库创建任何森林:
{ "backup-enabled": true, "backup-directory": "%%BACKUP-DIR%%/database/", "backup-type": "weekly", "backup-period": 1, "backup-day": [ "saturday" ], "backup-start-time": "10:00:00", "max-backups": 1, "backup-security-database": false, "backup-schemas-database": false, "backup-triggers-database": false, "include-replicas": false, "incremental-backup": false, "journal-archiving": false, "journal-archive-path": "", "purge-journal-archive": false, "journal-archive-lag-limit": 15, "forests": [] }
方法2:部署时通过参数跳过森林创建
执行ml-gradle部署命令时,添加-PmlSkipForestCreation=true参数,直接跳过森林创建步骤:
./gradlew mlDeploy -PmlSkipForestCreation=true
验证效果
部署完成后,登录MarkLogic管理控制台:
- 检查目标数据库的森林列表,确认没有额外创建的森林
- 查看数据库的备份配置,确认备份计划已成功应用
内容的提问来源于stack exchange,提问作者CJ Chang
相关产品推荐
相关产品推荐

