Was ist das beste Verfahren zum Zusammenführen der Arbeit an einer Entwicklungskopie einer Site zur Live-Produktionskopie? Seit Beginn der Entwicklung der neuesten Funktionen wurden der Website häufig viele neue Inhalte hinzugefügt. Und die meisten Ergänzungen einer Site erfordern Datenbankänderungen. Das Kopieren neuer Dateien ist also einfach, aber was ist mit der Datenbank? Wie können Sie Ihre Änderungen mit der vorhandenen Produktionsdatenbank zusammenführen, ohne neue Inhalte zu verlieren, die seit der letzten Aktualisierung der Produktionssite hinzugefügt wurden? Gibt es Module, die dabei helfen?
40
Antworten:
Informationen zu Inhaltstypen, Ansichten und Strukturänderungen auf der Entwicklerwebsite finden Sie unter Features zum Exportieren der Datenbank in Code.
Für die Migration von Inhalten gibt es viele Optionen, aber keine einzige solide Lösung. Ein Beispiel ist die Deployment Suite .
quelle
Ich habe hier im Grunde genommen zwei Denkschulen übernommen (eine 3. Denkschule, die Datenbankunterschiede macht, werde ich nicht diskutieren, da die Komplexität ziemlich hoch ist).
1) Stellen Sie das Produkt bereit, indem Sie die Produktionsdatenbank löschen und einen mysqldump der Entwicklungsdatenbank importieren. Optional können Sie zuvor ein reguläres Suchen / Ersetzen für alle fest codierten absoluten Links ausführen, die auf die Entwickler-URL im SQL-Speicherauszug verweisen. Führen Sie nach dem Import der dev db in prod automatisch SQL-Anweisungen aus (normalerweise über ein Skript), um anschließend alle Einstellungen zu ändern, die für prod anders sind als für dev (z. B. haben Sie in der Variablentabelle möglicherweise einige Verbindungseinstellungen für die Verbindung mit externen Systemen, die Sie benötigen auf prod externe Systeme anstatt auf die dev-Version umstellen).
2) Verwenden Sie die Funktionen Modul, wie Budda erwähnt, für die Admin - Einstellungen und die Verwendung Knoten Export - Modul für Content - Export / Import in Kombination mit dem Löschen Alle Modul. Der Workflow ist also:
Ein Hinweis, ich würde dringend empfehlen, einen Standard-Workflow zu übernehmen, bei dem der Inhalt nur in eine Richtung geht. Entweder Dev -> Prod oder Prod -> Dev (ich bevorzuge diesen).
Ich habe dies getan und mache dies auf einigen großen Systemen mit ziemlich guten Ergebnissen, aber es wird immer viele Möglichkeiten geben, diesen Apfel in Scheiben zu schneiden, je nachdem, welche Methode für Sie am besten geeignet ist.
quelle
Sichern Sie die Datenbanken der Live-Site-Kopie und die Entwicklungskopie der Site in der SQL-Datei (verwenden Sie dieselben Parameter und Einstellungen für beide Sicherungen).
Vergleichen Sie dann beide SQL-Dateien mit einem kleinen Vergleichstool ExamDiff . Es werden Dateiunterschiede nebeneinander mit verschiedenen Farben angezeigt. Sie können auch direkt zu den Unterschieden springen (ohne scrollen zu müssen). Untersuchen Sie die Unterschiede und fügen Sie Zeilen zur SQL-Datei der Live-Site hinzu bzw. bearbeiten Sie sie. Stellen Sie sicher, dass diese Datei keinen absoluten Pfad / URL der Entwicklungsumgebung enthält. Das ist erledigt! Zeit zum Wiederherstellen der Datenbank für die Live-Site.
Machen Sie sich das Leben leichter:Sichern Sie im ersten Schritt nur die Tabellen, die geändert wurden. Wenn Sie beispielsweise ein Modul in der Entwicklungskopie bearbeitet haben, das auf eine separate Tabelle abzielt, geben Sie nur diese Tabelle aus. Wenn Sie sich bei einer bestimmten Tabelle nicht sicher sind, ist der gesamte Datenbankspeicherauszug in Ordnung.
quelle