
Andrew Hanna

Andrew Hanna

TL;DR: Een click deploy in Salesforce heeft geen ingebouwde undo-knop. De Metadata API draait een mislukte deployment terug, maar na een geslaagde deployment betekent teruggaan: de vorige versie opnieuw deployen, verwijderen wat is toegevoegd en data met de hand herstellen. Maak een snapshot voordat je klikt, of gebruik een tool die dat voor je doet.
Bij een click deploy verplaats je metadata tussen orgs via een interface: je vergelijkt een bron en een doel, vinkt de gewijzigde componenten aan, valideert en deployt, zonder change set en zonder commandline. De term komt van ClickDeploy, dat Copado nu verkoopt als Copado Essentials; de tool en de prijzen bespreken we in hoe ClickDeploy werkt en wat het kost. De meeste gidsen stoppen bij de deploy. Deze gaat over wat er gebeurt als je hem moet terugdraaien.
In productie verandert er niets. Salesforce accepteert daar alleen
all-or-none-deployments (de optie rollbackOnError moet true zijn), dus de
Metadata API draait bij een fout de hele transactie terug en de org blijft zoals hij
was. De Salesforce CLI draait standaard terug en laat je dat omzeilen met
--ignore-errors, maar de
eigen referentie
zegt dat je dat nooit tegen productie moet gebruiken, omdat componenten met fouten
worden overgeslagen en de org inconsistent kan raken. Mislukt een deploy, los dan de
oorzaak op en draai hem opnieuw; onze gids over
click deploy-fouten
loopt de bekende boosdoeners langs.
Niet standaard. Zoals Gearset het verwoordt, kunnen change sets een deployment niet terugdraaien en DevOps Center ook niet, en met change sets kun je bovendien geen destructieve wijzigingen doen. Een geslaagde deploy is gewoon de nieuwe staat van de org. Om terug te gaan draai je een tweede deployment die de oude staat herstelt, en dat werkt alleen als je daar een kopie van hebt bewaard.
Daarom is de backup, niet de rollback, de stap die ertoe doet. Als niemand de doelcomponenten vóór de klik heeft vastgelegd, bouw je ze uit je geheugen opnieuw op.
destructiveChangesPost.xml-manifest,
zodat ze worden verwijderd nadat het herstel slaagt.
--dry-run
in de CLI) met hetzelfde Apex-testniveau als bij elke productierelease.
Bij stap 2 en 3 gaan de meeste rollbacks mis. Daarom maakt de click deploy-checklist een backup onderdeel van de voorbereiding, niet iets voor achteraf.
Stel Salto, Flosum, Blue Canvas en elke andere tool op je shortlist dezelfde twee vragen: is de backup automatisch of moet je hem aanzetten, en kun je één component terugdraaien zonder de hele release terug te zetten?
--purge-on-delete slaat de
prullenbak over, dus er valt niets te herstellen.
De betrouwbaardere oplossing is een geschiedenis die je opnieuw kunt afspelen. Deployen vanaf een branch betekent dat elke release is gecommit voordat hij live ging, zoals je leest in click deploy vanuit Git.
Tekunda is het Salesforce-consultancy- en productbedrijf achter Serpent, het DevOps-platform dat het ook voor zijn eigen klantprojecten gebruikt. Serpent houdt de klik-en-selecteer-workflow, terwijl Git en pull requests eronder draaien, zodat elke release een versie heeft om naar terug te gaan. Rollback is één klik, voor één component of een volledige release. Teams op Copado kunnen ons migratiepad volgen, de plannen staan op de prijspagina en meer gidsen vind je in de SF Guides-bibliotheek.
Heeft Salesforce een rollback-knop voor deployments?
Nee. Change sets en DevOps Center kunnen een deployment niet terugdraaien. Je deployt de vorige versie opnieuw of gebruikt een tool die de org eerst vastlegt.
Verandert een mislukte click deploy iets?
Niet in productie, waar Salesforce all-or-none-deployments verplicht. Ook de
Salesforce CLI draait bij een fout terug, tenzij je
--ignore-errors meegeeft.
Kan ik data terugdraaien met een deployment-rollback?
Nee. Rollbacks herstellen alleen metadata, dus records hebben een aparte databackup en -restore nodig.
Hoe lang kan ik een verwijderd custom field herstellen?
15 dagen, tenzij het is gewist of gepurged. Sommige eigenschappen moet je daarna met de hand herstellen.
Vrijblijvend.