Deactivate Trigger in Production using SFDX
Let's look at how to deactivate a Trigger in Production using SFDX.
I have a scenario, you have to do data loading into an object in Production and there's a trigger on the object. How can you disable the Trigger?
We cannot directly disable that in Production Org
Apart from the fact that we can deactivate it using changesets, you can also deactivate it using SFDX. The reason for not using changesets can be as simple as the time it takes to run all the tests.
If the org has a large no of classes then it takes anywhere around 40-45 minutes to execute all the test classes. In that case, we can take the help of SFDX.
These are the steps you need to follow to deactivate a trigger in Production using SFDX.
- Create a
package.xmlfile to retrieve the metadata of the trigger. You will already be having this file. Only include triggers in the XML file only to retrieve them - Authorise the destination org where you want to deactivate the trigger using the command
sfdx force:auth:web:login - Use the
sfdx force:mdapi:retrievecommand to retrieve metadata of the trigger using thepackage.xmlfile created earlier. - Once the metadata file is retrieved, unzip the file, and in the
triggername.trigger-meta.xmlfile change the status fromActivetoInactive. - Now run the
sfdx force:mdapi:deploycommand to deploy the changes to the target org.
The basic route that you will be taking here is
- Fetch the metadata of trigger from the org
- After fetching it unzip it and it will have a
triggername.trigger-meta.xmlfile. - Change the status from Active to Inactive
- Push the code back to the org
This way you don't have to run all the test classes and etc.
Hope that is helpful!