Rezepte für Migrationen
Jedes Rezept ist eine Aufgabe, immer gleich aufgebaut: was Sie am Ende haben, die Schritte mit den Befehlen und
ihrer Ausgabe, die vollständige Migration, wie Sie sie prüfen, wie Sie sie zurücknehmen und der nächste
Schritt. Sie setzen Exponential 6.0.15 mit den Aufzeichnungstabellen voraus (./console exp:upgrade:status zeigt
6.0.15-migration-tables als done) und eine Entwicklungsinstallation in einem Git-Checkout. Neu bei Migrationen?
Machen Sie zuerst das Tutorial; es dauert etwa 20 Minuten.
Das Datenbankschema
| Rezept | Sie haben dann |
|---|---|
| Eine Datenbanktabelle anlegen | eine eigene Tabelle auf jeder Engine, angelegt aus einer Definition im Stil von .dba |
| Eine Spalte oder einen Index hinzufügen | eine neue Spalte und einen Index an einer bestehenden Tabelle, geschrieben vom Schema-Handler jeder Engine |
| Hinweise zu den Datenbanken | was sich zwischen MySQL/MariaDB, PostgreSQL, SQLite, Oracle und MongoDB unterscheidet |
Inhaltsklassen und Inhalte
| Rezept | Sie haben dann |
|---|---|
| Eine Inhaltsklasse anlegen oder ändern | eine Inhaltsklasse mit ihren Attributen und ihrer Klassengruppe, angelegt oder erweitert auf jeder Installation |
| Ein Klassenattribut hinzufügen | ein neues Attribut an einer bestehenden Klasse, mit initialisierten vorhandenen Objekten |
| Inhalte in großen Mengen ändern | viele Objekte in einer Migration aktualisiert und veröffentlicht, gefunden nach Klasse und Teilbaum |
| Daten korrigieren | eine Korrektur falscher Daten, so geschrieben, dass sie auf jeder Installation sicher ist |
| Inhalte für eine neue Site anlegen | die Ordner und Seiten, mit denen eine neue Site beginnt, wiedergefunden über die Remote-ID |
| Große Datenmigrationen | eine lange Migration in Stapeln, die sich nach einer Unterbrechung fortsetzen lässt |
Einstellungen, Rollen und Richtlinien
| Rezept | Sie haben dann |
|---|---|
| INI-Einstellungen verschieben oder umbenennen | eine Einstellung in settings/override verschoben, mit erhaltenem alten Wert und einem Weg zurück |
| Rollen und Richtlinien hinzufügen | eine Rolle mit ihren Richtlinien, einer Benutzergruppe über die Remote-ID zugewiesen |
Wo Migrationen liegen und laufen
| Rezept | Sie haben dann |
|---|---|
| Migrationen je Umgebung | Migrationen, beschränkt auf Entwicklung, Staging oder Produktion mit der Kopfzeile environments: |
| Migrationen in einer Erweiterung oder einem Paket | Migrationen, ausgeliefert in einer Erweiterung oder einem installierten Paket, eingeordnet mit denen der Site |
| Upgrade-Schritt oder Migration? | das richtige Werkzeug für jede Änderung und eine Migration, die einen Upgrade-Schritt des Kernels voraussetzt |
Qualität
| Rezept | Sie haben dann |
|---|---|
| Ein umkehrbares down() schreiben | ein down(), das up() wirklich zurücknimmt, und den Beweis dafür |
| Migrationen testen | die Prüfung in CI, eine Simulation mit Diff und einen PHPUnit-Test auf SQLite |
| Eine Migration im Code-Review prüfen | eine Checkliste für das Code-Review einer Migration |
Teams und Auslieferung
| Rezept | Sie haben dann |
|---|---|
| Teamarbeit mit Git | Branches, Reihenfolge, requires: und Merge-Konflikte im Griff |
| Mit Migrationen ausliefern | eine Pipeline (mit einem Beispiel für GitHub Actions), die Migrationen prüft und anwendet |
| Tags pushen | jeden Lauf committet, getaggt und gepusht, und gescheiterte Pushes nachgeholt |
Sicherheit und die Aufzeichnung
| Rezept | Sie haben dann |
|---|---|
| Sicherungspunkte und Rücknahme in der Praxis | einen gescheiterten Lauf wiederhergestellt, einen Lauf und eine Migration zurückgenommen |
| Die Audit-Spur der Läufe | die Antwort auf „was lief wo, wann und durch wen“ |
Umstieg von einem anderen Werkzeug
| Rezept | Sie haben dann |
|---|---|
| Umstieg von Doctrine Migrations | die Befehle und Klassen von Doctrine denen von Exponential zugeordnet |
| Umstieg vom Kaliop-Migrations-Bundle | YAML-Schritte von Kaliop als PHP-Migrationen geschrieben |
| Umstieg von SQL-Update-Dateien | eine von Hand geschriebene Update-Datei als aufgezeichnete, Engine-bewusste Migration |
YAML-Migrationen
Kommt mit der YAML-Engine. Rezepte für Migrationen aus YAML-Schritten werden hier gelistet, sobald die YAML-Engine erscheint. In 6.0.15 ist jedes Rezept in PHP geschrieben.
Verwandte Seiten
- Migrationen: der Einstieg
- Die Anleitung, das Tutorial, PHP-Migrationen
- In der Administration, Befehle, Einstellungen
- Das Dateiformat
- Wenn eine Migration scheitert, Fehlermeldungen
- Migrationen oder Umzug einer Site
- Häufige Fragen
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.