Salesforce-DevOps-Glossar

Destructive Changes

Salesforce-Deployments, die Metadaten entfernen, getrennt von additiven Änderungen nachverfolgt, damit Löschungen bewusst bleiben.

Definition

Destructive Changes sind Salesforce-Deployments, die Metadaten, Felder, Objekte, Apex-Klassen und Ähnliches entfernen, mithilfe eines destructiveChanges.xml-Manifests, das neben, oder anstelle, einer regulären package.xml deployt wird. Löschungen können nicht über ein normales Metadaten-Deployment erfolgen; Salesforce verlangt dieses separate Manifest genau deshalb, damit Entfernungen explizit und überprüfbar sind statt ein zufälliger Nebeneffekt eines regulären Deployments. Destruktive Deployments laufen in zwei Modi, pre- (Löschen vor dem Deployment neuer Metadaten) oder post- (Löschen danach), und die Reihenfolge falsch zu wählen, kann abhängige Komponenten mitten im Deployment zerstören. Da Löschungen nicht leicht rückgängig zu machen sind, behandeln die meisten Teams Destructive Changes als risikoreicher als additive Änderungen, und manche Felder oder Datensätze, an denen noch Daten hängen, blockieren die Löschung, bis die Daten behandelt wurden. Dasselbe gilt für ein Flow Deployment: Salesforce blockiert das Deaktivieren einer Version, die noch pausierte Interviews hat. Unser Salesforce-DevOps-Guide behandelt sichere Release-Praktiken, einschließlich des Umgangs mit Entfernungen.

In der Praxis

So funktioniert es in Serpent

Serpent verfolgt Entfernungen genauso wie jede andere Änderung, sodass eine Aufgabe, die ein Feld oder eine Klasse löscht, automatisch ein ordentliches Destructive-Changes-Manifest erzeugt, mit für Sie aufgelöster Pre- oder Post-Deploy-Reihenfolge. Preflight-Checks kennzeichnen, wenn eine Löschung abhängige Komponenten oder Daten hat, die sie blockieren könnten, bevor das Deployment in der Produktion läuft, nicht danach. Und weil jedes Release ein One-Click-Rollback hat, lässt sich ein Destructive Change, der sich als falsch herausstellt, ohne manuellen Wiederherstellungsaufwand rückgängig machen. Siehe Release-Management in Serpent dafür, wie Rollback und Destructive Changes zusammenspielen.

Release-Status-Dashboard in Serpent

Kostenlos starten. Keine Kreditkarte, keine Installation, keine Verpflichtung.

In unter 15 Minuten eingerichtet. Keine DevOps-Einstellung nötig.

Neugierig auf schnelleres Shipping, bevor Sie einsteigen? Sprechen wir

Unverbindlich.