So stellen Sie DB-Änderungen von dev in die Produktion in Magento bereit

9

Mir ist bekannt, dass Module Installations- und Daten-Setup-Skripte haben, um die DB vom Entwickler in die Produktion portierbar zu machen.

In unserem Fall haben wir jedoch UI-Entwickler, die Attribute und Produkte über die Administrationsoberfläche hinzufügen, die in der Entwicklungsdatenbank gespeichert wird.

Am Veröffentlichungstag können wir nicht alle Schritte wiederholen, die wir in der Entwicklungsumgebung ausgeführt haben, da dies zu langwierig und zeitaufwändig sein wird.

Gibt es eine Möglichkeit, solche DB-Änderungen bei der Bereitstellung zu behandeln?

Im Moment führen wir einen Unterschied zwischen der dev-Datenbank und der prod-Datenbank durch und generieren eine SQL, die am Veröffentlichungstag ausgeführt wird. Dies ist jedoch wenig gefährlich, da die dev-Datenbank möglicherweise Testtransaktionsdaten enthält und wir am Ende möglicherweise Transaktionstabellen in prod sperren, wenn unser SQL Anweisungen zum Ändern von Transaktionstabellen enthält.

Gibt es Best Practices dafür? Vielen Dank für die Hilfe im Voraus

Jeetendra Pujari
quelle

Antworten:

8

Es gibt verschiedene Erweiterungen für die Migration von Daten zwischen Umgebungen, aber wenn Sie diese verwenden, schießen Sie sich in einen Fuß. Sie möchten Ihre Produktionsumgebung definitiv nicht beschädigen, wenn etwas schief geht.

Der einzig richtige Weg, um Daten zu migrieren, ist die Verwendung von Setup-Skripten.

Außerdem können damit neue Umgebungen eingerichtet werden (z. B. für neue Fische Ihres Teams), die auf dem aktuellen Stand der Dinge sind.

Gute Frage übrigens.

user487772
quelle
Ich persönlich habe festgestellt, dass einige der Module von Magento Connect nicht immer vollständig kompatibel sind, wenn es darum geht, Setup-Skripte von Grund auf neu auszuführen. Ich muss noch genau herausfinden, was passiert ist, aber unser Store-Setup befindet sich in einem Zustand, in dem ausgehend von einer leeren Datenbank die Installationsskripte miteinander in Konflikt stehen und der Store die leere Datenbank nicht booten kann. Um wieder von vorne anfangen zu können, müssten wir die Module nacheinander anwenden. Oder Fehler in Software beheben, die wir nicht geschrieben haben.
nbering
Wie können Sie Änderungen in ein Skript einfügen, die über das Magento-Administrationsfenster vorgenommen wurden? Beispiel: Attribute und Produkte hinzufügen oder Konfiguration einer Erweiterung ändern?
Andrea
1
@Andrea Sie nehmen einfach keine Änderungen im Magento Admin Panel vor. Alles durch Setup-Skripte. Natürlich sind Sie in einigen Fällen, wenn Sie etwas ausprobieren möchten, noch nicht sicher, ob Sie irgendwann etwas in admin ändern, aber in diesem Fall müssen diese Änderungen zurückgesetzt und erneut über das Setup-Skript angewendet werden.
user487772
Als FYI. Wir haben für die meisten Änderungen Setup-Skripte verwendet. Glücklicherweise hatte unser UI-Entwickler nichts dagegen, Setup-Skripte zu erstellen, sobald er es verstanden hatte. Sie können auch ein Ticket für die Erstellung eines neuen Setup-Skripts erstellen und es Ihren Entwicklern zuweisen. Wir haben auch ein Marketing-Team, das die CMS-Funktion von Magento verwendet. Anstatt diese Änderungen in der Entwicklungsumgebung vorzunehmen, haben wir sie gebeten, diese Änderungen direkt in der Produktion vorzunehmen. Wir haben eine CMS-Rolle hinzugefügt, mit der sie nur auf CMS-Funktionen zugreifen können. Gelegentlich veröffentlichen wir dann CMS-Änderungen von Prod zu Stage und dann QA und Dev mithilfe eines benutzerdefinierten Skripts.
Jeetendra Pujari