Bereitstellen von Inhaltsaktualisierungen vom Staging-Server auf dem Live-Server


8

Wir versuchen, Inhaltsaktualisierungen von unserem Staging-Server auf unserem Live-Server bereitzustellen, haben jedoch Schwierigkeiten, einen guten Weg zu finden, dies zu tun. Wir müssen in der Lage sein, neue Seiten bereitzustellen, Seiten zu aktualisieren und gelegentlich Seiten zu löschen. Auf unserer Website wird das Buchmodul auch in großem Umfang verwendet, sodass das Bereitstellungsmodul derzeit für uns nicht funktioniert. Wir verwenden Funktionen für große Strukturaktualisierungen. Unser Anliegen sind also nur die täglichen Inhaltsaktualisierungen.

Gibt es Module, die dies tun und Buchseiten bearbeiten können?


Ich denke, das hat etwas mit drupal.stackexchange.com/q/137/134 zu tun . Sie können sich die Antwort dort ansehen und sehen, ob sie hilft, oder Ihre Frage klären, warum sie anders ist.
Chaulky

Keine dieser Antworten funktioniert für Buchseiten oder löscht sie. Beides ist uns sehr wichtig. Außerdem scheint es ein schwerwiegender Overkill zu sein, jedes Mal einen vollständigen DB- und Datei-Dump durchzuführen.
Antgiant

Können Sie ein Einfrieren von Inhalten in der Produktion festlegen, während Sie das Staging-System ändern?
BetaRide

Antworten:


3

Mit UUID- und UUID-Funktionen können Sie einen Knoten in eine Funktion exportieren. Dies könnte genau das sein, wonach Sie suchen, sodass Sie sich nicht mit der Datenbank herumschlagen müssen.




0

Sie können auch Phing ausprobieren , mit dem Sie automatisch:

  • Speichern Sie die Staging-Datenbank mit mysqldump.
  • Kopieren Sie die mysqldump-Datei mithilfe der SCP- und Public-Private-Key-Verschlüsselung von einem Server auf einen anderen.
  • Importieren Sie den mysqldump aus dem Dateisystem in die Datenbank.
  • Führen Sie den Befehl Feature Revert All ( drush fra -y) aus, damit Ihr Produktionsserver die in Ihrem Features-Code enthaltenen Produktionseinstellungen (wie Blöcke, Ansichten, Kontexte usw.) übernimmt.

Probleme, die ich bei diesem Ansatz sehe:

Sie müssen einen sehr feinkörnigen Datenbankexport durchführen. Dies bedeutet, dass nur die Tabellen node, node_revisions, cck und menu verwendet werden.

In diesem letzten Punkt (Menü-Links) haben Sie unterschiedliche Menüeinträge, sofern Sie nicht über dieselben URL-Aliase auf Ihren Stage- und Ihren Prod-Server zugreifen. Dies ist ein ernstes Problem.


3
Ich versuche, wenn möglich bei Drupal-Modulen zu bleiben. Und ehrlich gesagt scheint diese Idee wie ein Datenkorruptionsunfall zu sein, der darauf wartet, passiert zu werden.
Antgiant

0

Ich mag die vollständige DB-Dump-Methode, die per Skript ausgeführt werden kann und oft in nur wenigen Sekunden abgeschlossen werden kann. (Wenn Sie Ihre Revisionen unter Kontrolle halten und Cache-Tabellen usw. ausschließen, kann sich die Größe erheblich verringern.) Sie können sogar ein einfaches Modul erstellen, um Inhaltsverlegern eine Schnittstelle zum Auslösen dieses Prozesses bereitzustellen.

Sie müssen alle Inhalte berücksichtigen, die Sie möglicherweise von Benutzern Ihrer Live-Site akzeptieren, z. B. Kommentare oder Übermittlungen von Kontaktformularen. Wenn es welche gibt - überraschenderweise oft keine -, können Sie entweder einen externen Dienst wie Disqus für Kommentare oder Marketo für Lead-Generierungsformulare verwenden, solche Übermittlungen sorgfältig in eine separate Drupal-Datenbank trennen, die nicht überschrieben wird, oder diese sorgfältig nicht überschreiben betroffene Tabellen während des Export- / Importprozesses.

Wo es zum Laufen gebracht werden kann, ist es möglicherweise die einfachste, schnellste und zuverlässigste Methode. Und eine Site, die niemals Eingaben von Benutzern (außer in externe Dienste) akzeptiert, öffnet viele Türen, um viel schneller und sicherer gemacht zu werden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.