Migrationen
Eine Migration ist eine Änderung an einer Installation (eine Tabelle, eine Spalte, eine Inhaltsklasse, Inhalte, eine Rolle, eine Einstellung), einmal in einer PHP-Datei unter Versionskontrolle geschrieben und auf jede Installation der Site (Entwicklung, Staging, Produktion) in derselben Reihenfolge angewendet. Exponential 6.0.15 führt Migrationen im Kernel aus: Es hält fest, was wo gelaufen ist, nimmt vor jedem Lauf einen Sicherungspunkt, stellt ihn automatisch wieder her, wenn eine Migration scheitert, und committet, taggt und pusht die Aufzeichnung jedes Laufs.
Suchen Sie etwas anderes? Eine Site auf einen anderen Server umziehen, sie auf ein neues Release bringen oder Inhalte aus einem anderen System übernehmen heißt eine Site migrieren – eine andere Aufgabe mit eigenen Seiten: Migrationen oder Umzug einer Site.
Inhalt
- Hier beginnen
- Für wen
- Rezepte
- In der Administration
- Referenz
- Wenn etwas schiefgeht
- YAML-Migrationen
- Was 6.0.15 bietet und was später kommt
- Verwandte Seiten
Hier beginnen
| Sie wollen ... | Beginnen Sie mit | Danach |
|---|---|---|
| Ihre erste Migration schreiben (etwa 20 Minuten) | dem Tutorial | PHP-Migrationen, den Rezepten |
| verstehen, was Migrationen sind und wie ein Lauf abläuft | der Anleitung | Zurücknehmen und Sicherungspunkte, dem Migrations-Repository |
| Migrationen anwenden, die andere geschrieben haben | Migrationen für Administratoren | In der Administration, Ausführen, Probelauf und Rücknahme |
| sich in Setup > Migrationen zurechtfinden | Ein Rundgang durch Setup > Migrationen | Stand und Verlauf |
| von Hand gemachte Änderungen zu einer Migration machen | Änderungen aufzeichnen | Migrationen erzeugen, Der Migrationseditor |
| die Migrationen auf Staging und Produktion bringen | Eine Gegenstelle anlegen, Schritt für Schritt | Ausliefern, Schritt für Schritt |
| Änderungen im Team über CI bis in die Produktion bringen | Teamarbeit mit Git | Migrationen testen, Mit Migrationen ausliefern |
| von Doctrine Migrations, dem Kaliop-Bundle oder SQL-Update-Dateien umsteigen | Umstieg von Doctrine Migrations | Kaliop, SQL-Update-Dateien |
Die fünf Befehle für jeden Tag:
./console exp:migration:generate --skeleton add_news_table --apply # eine neue PHP-Migration in migrations/
./console exp:migration:check # die Prüfung: Namen, Kopf, Reihenfolge, PHP (ohne Datenbank)
./console exp:migration:migrate # Probelauf: was sich ändern würde
./console exp:migration:migrate --apply # Sicherungspunkt, Lauf, neuer Sicherungspunkt, Commit, Tag, Push
./console exp:migration:status # was erledigt ist und was ausstehtFühren Sie sie im Wurzelverzeichnis der Installation als der Benutzer aus, unter dem der Webserver läuft (als root mit
--allow-root-user). Jeder Befehl, der schreibt, ist ein Probelauf, bis er --apply bekommt.
Für wen
| Sie sind ... | Ihre Seite |
|---|---|
| Softwareingenieur und gestalten, wie Änderungen in die Produktion kommen | Migrationen für Softwareingenieure |
| PHP-Entwickler und schreiben die Migrationsklassen | Migrationen in PHP schreiben |
| Administrator und führen sie auf Staging und Produktion aus | Migrationen für Administratoren |
| Hosting-Anbieter oder Datenbankadministrator | Migrationen auf gehosteten Sites |
| Agentur oder Integrator mit vielen Kunden-Sites | Migrationen in Kundenprojekten |
| Trainer | Lektion 9.5: Migrationen, mit einer Übung |
| DXP-Entwickler und kennen Doctrine Migrations | Exponential-Migrationen für Doctrine-Nutzer |
Rezepte
Jedes Rezept ist eine Aufgabe: was Sie am Ende haben, die Schritte mit ihrer Ausgabe, die vollständige Migration, wie Sie sie prüfen, wie Sie sie zurücknehmen und der nächste Schritt. Alle Rezepte.
Das Datenbankschema
- Eine Datenbanktabelle anlegen
- Eine Spalte oder einen Index hinzufügen
- Hinweise zu den Datenbanken: MySQL, PostgreSQL, SQLite, Oracle und MongoDB
Inhaltsklassen und Inhalte
- Eine Inhaltsklasse anlegen oder ändern
- Ein Klassenattribut hinzufügen
- Inhalte in großen Mengen ändern
- Daten korrigieren
- Inhalte für eine neue Site anlegen
- Große Datenmigrationen
Einstellungen, Rollen und Richtlinien
Wo Migrationen liegen und laufen
- Migrationen je Umgebung
- Migrationen in einer Erweiterung oder einem Paket
- Upgrade-Schritt oder Migration?
Qualität
Teams und Auslieferung
Sicherheit und die Aufzeichnung
Umstieg von einem anderen Werkzeug
In der Administration
Setup > Migrationen zeigt jede Migration mit ihrem Zustand, führt die ausstehenden im Hintergrund aus, simuliert einen Lauf und nimmt einen Lauf oder eine Migration zurück, zeichnet Änderungen auf, schreibt Migrationen in seinem Editor und liefert sie an andere Installationen aus. Das Dashboard hat einen Block Migrationen, die Website-Seitenleiste ein Panel. Jede Seite unten hat Anleitungen Schritt für Schritt mit Bildschirmfotos.
- Ein Rundgang durch Setup > Migrationen: jeder Reiter mit Bildschirmfoto, und welche Seite für welche Aufgabe
- Migrationen in der Administration: die Seiten und wer sie nutzen darf
- Stand und Verlauf
- Ausführen, Probelauf und Rücknahme
- Migrationen in der Website-Seitenleiste
- Änderungen aufzeichnen: die eigenen Änderungen oder in einem websiteweiten Fenster jede Änderung als Schritte einer Migration aufzeichnen
- Gegenstellen und Deploys: die anderen Installationen, an die diese ihre Migrationen ausliefert, Deploys gleichzeitig oder Stufe für Stufe mit einem Tor, live je Gegenstelle, Verlauf und Rücknahme
- Eine Gegenstelle anlegen, Schritt für Schritt: die fünf Schritte des Assistenten, Verbindung testen, bearbeiten und entfernen, FTP-Hosts mit dem Trigger, Selbstheilung
- Ausliefern, Schritt für Schritt: Gegenstellen wählen, Preflight, ausliefern, live verfolgen, ein Tor freigeben, zurücknehmen, der Verlauf und die Hinweis-Mails
- Der Migrationseditor: eine YAML-Migration mit Formularen bauen, prüfen, ansehen und speichern
- Migrationen erzeugen: aus einer Aufzeichnung, im Editor, aus dem Vorhandenen, aus einem Unterschied, Gerüste
Referenz
| Seite | Was sie auflistet |
|---|---|
| Die Anleitung | das ganze Modell: Lebenszyklus, Dateien, Reihenfolge, Kopf, Umgebungen, Aufzeichnung, Transaktionen, Sperre, jeder Schalter |
| PHP-Migrationen | die Klasse, ihre Methoden, der Kontext, Transaktionen, Fehler, Ereignisse, Tests |
| Das Migrationsdateiformat | Dateinamen, der Kopf, die Reihenfolge, die Prüfsumme, die Aufzeichnungstabellen, die Statusdatei, das Laufprotokoll, die Maschinenausgabe |
| Befehle | jeder Befehl exp:migration:*, mit einem Link auf seine erzeugte Seite |
| Einstellungen | jeder Block von migration.ini, mit einem Link auf seine erzeugte Seite |
| Richtlinien, Ansichten und Ereignisse | die Richtlinien, die Ansichten des Moduls migration, die Ereignisse und die Audit-Ereignisse |
| Die Funktion | was 6.0.15 hinzufügt, die Klassen, die Engines, die Grenzen |
| Upgrade mit der Konsole | exp:upgrade, dessen Schritte unter den Migrationen gelistet und ausgeführt werden |
Wenn etwas schiefgeht
- Wenn eine Migration scheitert: Fehlerbehebung nach Symptom
- Fehlermeldungen: jede Meldung, die die Befehle ausgeben
- Häufige Fragen
- Zurücknehmen und Sicherungspunkte
YAML-Migrationen
Eine Migration kann statt einer PHP-Klasse eine Liste von YAML-Schritten sein: Inhalte, Orte und Versionen, Klassen und Klassengruppen, Benutzer, Benutzergruppen und Rollen, Sektionen, Sprachen und Objektzustände. Die Engine, ihre Platzhalter, Bedingungen und Schleifen: das Dateiformat; die Schritttypen: Schritte von YAML-Migrationen und jeder Schritttyp. Die Rezepte hier sind in PHP geschrieben; jedes lässt sich auch als YAML-Schritte schreiben, wo ein Schritttyp es abdeckt.
Was 6.0.15 bietet und was später kommt
| In 6.0.15 | Noch nicht |
|---|---|
| PHP-, YAML-, SQL- und INI-Migrationen in der Site, in aktiven Erweiterungen und in installierten Paketen | |
| der Probelauf und die Simulation mit Diff auf PostgreSQL und SQLite | eine Simulation auf MySQL/MariaDB, Oracle und MongoDB (der Plan wird gelistet) |
| Sicherungspunkte, die automatische Wiederherstellung, die Rücknahme eines Laufs, einer Migration und jedes Sicherungspunkts | |
| Generatoren aus einer Aufzeichnung, aus Inhalten, Klassen, Rollen, Sektionen und Einstellungen, aus einem Unterschied, und Gerüste; der Editor in der Administration | |
Commit, Tag und Push der Aufzeichnung jedes Laufs; der Cronjob-Teil migrationpush | exp:velocity deploy --migrate |
| Setup > Migrationen, Läufe im Hintergrund, Aufzeichnung, der Editor, Gegenstellen und Auslieferungen, der Dashboard-Block und das Panel der Seitenleiste | |
die Upgrade-Schritte des Kernels unter den Migrationen gelistet und ausgeführt (Stufen database und scripts) | die Stufen code, libraries und finish bleiben bei exp:upgrade |
Verwandte Seiten
- Migrationen: die Anleitung, das Tutorial, PHP-Migrationen
- Alle Rezepte, Häufige Fragen
- Migrationen oder Umzug einer Site
- Migration zu und von Exponential (eine Site aus einem anderen System oder Release umziehen)
- Upgrade mit der Konsole, Upgrade-Schritte für Erweiterungen
- Schemaänderungen und Migrationen
- Ein Rundgang durch die Administration
- Glossar
- Freie Dokumentation: Diese Seite darf unter der GNU FDL 1.3 frei kopiert, übersetzt und verbessert werden.