Loading TOC...

trgr.triggersChangeModulesDatabase

trgr.triggersChangeModulesDatabase(
   old-db as xs.anyAtomicType,
   new-db as xs.anyAtomicType
) as null

Summary

Any Trigger with a module referring to $old-db will be updated to refer to $new-db. This is useful after restoring a Trigger's database to a different cluster with different database IDs than the one from which it was backed up.

Parameters
old-db The old database ID or name.
new-db The new database ID or name.

Example

xquery version "1.0-ml"; 

(: run this against your triggers database :) 
import module namespace trgr = "http://marklogic.com/xdmp/triggers" 
      at "/MarkLogic/triggers.xqy";

trgr:triggers-change-modules-database(xdmp:database("Triggers"), xdmp:database("Modules"))
      
=> Empty sequence. All triggers referencing the "Triggers" database by name
    or by ID will have their modules database set to reference the ID of 
    the Modules database.


trgr:triggers-change-modules-database("Triggers", "Modules")
      
=> Empty sequence. All triggers referencing the "Triggers" database by name or id
    ( meaning Triggers with a module referencing the ID of Triggers database will be affected too)
    as their modules database will be changed to reference the Modules database.
    

Example

declareUpdate();
const trgr = require('/MarkLogic/triggers');

trgr.triggersChangeModulesDatabase(5184170867299910410, 
      xdmp.database('Modules'));
      
// Empty sequence. Sets all triggers that reference 5184170867299910410
// as their modules database to reference the ID of the Modules database.
   

Stack Overflow iconStack Overflow: Get the most useful answers to questions from the MarkLogic community, or ask your own question.