2013-04-10 12 views
7

Es ist praktisch, wenn Sie die DEVELOPMENT-Version der Anwendung auf Ihrem lokalen Rechner haben und diese auf dem STAGE-Server zum Testen bereitstellen können (optional) und dann auf dem PRODUCTION-Server bereitstellen. Sie können dies relativ einfach tun, wenn Code und Daten im Projekt feinfühlig sind (z. B. wenn wir den gesamten Code und die Einstellungen in Projektdateien und Daten in der Datenbank speichern).Was ist die beste Vorgehensweise beim Einsatz von MODX?

MODX speichert Vorlagen, Snippets usw. in der Datenbank. Ja, wir können diesen Code in statische Dateien verschieben und dann können wir das Versionskontrollsystem zum Verfolgen von Änderungen dieser Artikel verwenden. Aber diese haben auch Repräsentationszeilen in der Datenbank. Das bedeutet, dass wir die Datenbank wie zuvor aktualisieren müssen, wenn wir einige Elemente hinzugefügt oder entfernt haben.

Sieht so aus, als könnten wir auch Probleme bekommen, wenn wir Dateien von Erweiterungen kopiert haben, anstatt die Installation durch den Paketmanager zu machen (da Erweiterungen oft eigene Tabellen in DB haben).

Ein anderes Problem ist, dass Anwendungen auf DEV und PROD verschiedene Einstellungen in Dateien (Configs) und Datenbank (Benutzerkonten, z. B.) gespeichert haben.

Ich sehe immer noch nicht den klaren Weg, um iterative DEV-STAGE-PROD-Entwicklungszyklus zu organisieren. Also, meine Fragen sind:

  • Welche Dateien und Datenbanktabellen sollte (oder muss) ich beim Deployen kopieren?
  • Was ist der Modus (ersetzen, ignorieren) Ich sollte das tun?
  • Was ist der einfachste und schnellste Weg, das zu tun?

Meine größte Sorge hier ist mit der Datenbank zu tun haben.

P.S. Ich spreche von "Revolution" Version von MODX, wenn es darauf ankommt.

+1

Ich meine den Weg, nur einige Änderungen nicht das ganze Projekt zu implementieren. In diesem Fall hat der Entwickler eine große DB auf einer Produktionsseite und eine kleine Test-DB auf einer lokalen Maschine. Also welcher Teil der Datenbank muss kopiert werden und was ist der beste Weg? Was ist mit einem Ressourcen-ID-Konflikt, wenn Sie eine neue Ressource auf DEV erstellen und eine ID hat, die bereits auf PROD belegt ist? –

Antwort

3

Die Datenbank sollte überhaupt keine Pfadinformationen speichern, frühere Versionen haben dies in der modx_workspaces-Tabelle getan, aber das ist seitdem verschwunden [ab 2.2.4 glaube ich].

Wenn Sie besorgt sind über die URL-Änderungen [dev.mysite.com/stage.mysite.com/Produktion ...] nicht sein - das ist alles in der .htaccess-Datei [dort war eine site_url Systemeinstellung, aber es scheint auch verschwunden zu sein.]

Die einzige Datei, um die Sie sich kümmern müssen, ist der core/config/config.inc.php ~ erstellen Sie 3 verschiedene Dateien mit den verschiedenen Pfaden oder ersetzen Sie sie einfach bei Ihnen Wandern.

mein Prozess zum Bewegen/Aktualisierung/modx Websites Migration ist:

klar, dass der Cache !! tar cvfz httpdocs.tar.gz httpdocs/ mysqldump -u -p the_database> export.sql

Verschieben Sie die Dateien, tar xvfz & importieren Sie die Datenbank. Es ist eine gute Idee, die Tabelle modx_workspaves zu überprüfen, und wenn Sie eine ältere Version von Galerie verwendet haben, überprüfen Sie das auch, aber die meisten Plugins & Entwickler werden verwendet, um Pfadinformationen in Code & DB-Tabellen nicht zu speichern.

Natürlich, wenn Sie Ihre Installation gehärtet haben, gibt es ein paar Schritte mehr, aber nichts Wichtiges. [Siehe den Artikel "Hardening Modx" auf rtfm.modx.com]

+0

Es scheint, dass Sie den Weg zur Erstellung einer vollständigen Kopie einer Anwendung erläutert haben. Aber was ist, wenn ich bereits riesige unabhängige Datenbank auf Produktionsserver (z. B. benutzergenerierte Inhalte) und kleine Test-Datenbank auf DEV? Auch ich kann nur ein Admin-Konto mit einem einfachen Passwort für DEV und viele andere Konten auf PROD haben (für Manager, Autoren usw.) Ich nehme an, es erfordert teilweise Zusammenführung von Datenbanken in diesem Fall, nicht wahr? Wie löse ich auch Probleme mit Ressourcen-ID-Konflikten? Wenn ich eine neue Seite auf DEV erstellt habe und ich werde sie zu PROD verschieben, kann ich nicht garantieren, dass diese ID dort noch nicht belegt ist. –

+1

Wenn Sie eine Ressource oder Ressourcen hinzufügen möchten, fügen Sie sie live in einem unveröffentlichten Zustand hinzu. Wenn Sie sie testen möchten, müssen Sie zunächst an einer Sicherung der Produktionsdaten arbeiten. Darüber hinaus können Sie Snippets, Vorlagen, Chunks, TVs, Benutzer, Rollen, Gruppen oder Richtlinien ändern. Beste Wette ist wieder, Test auf einer Produktionskopie, dann implementieren. Wie bei allem, das Problem ist die Live-Daten ändern, während Sie entwickeln, wenn Sie Änderungen von Dev einrollen müssen, dann müssen Sie durch die Xpdo-Schemata graben, herauszufinden, welche Tabellen können/werden geändert werden und schreiben Sie sich einige Import/Export-Skripte. –

1

Ich denke, was Sie suchen dieses Plugin ist (abhängig von Ihrer Version von modx):

https://github.com/digitalbutter/MODX-Mirror

https://github.com/digitalbutter/FEM

Alle Chunks, Snippets usw. auf der Festplatte befinden . Alle an den Dateien vorgenommenen Änderungen lösen die entsprechenden Datenbankänderungen aus, ohne dass ein vollständiger SQL Import/Reimport durchgeführt werden muss. Dies ermöglicht Versionskontrollsystem/verteilte Entwicklungsumgebung/automatisierte Bereitstellung.

Verwandte Themen