Konvertieren Sie eine Produktionsdatenbank in Testdaten
15
Je näher ein Test an der Produktion liegt, desto besser kann er das Produktionsverhalten nachbilden. Ich möchte die Datenbank-Backups aus der Produktion in unsere Testumgebungen kopieren, aber was muss ich ändern, damit der Test funktioniert und um die Produktion nicht zu beeinträchtigen oder versehentlich echte Kunden per E-Mail zu benachrichtigen (abgesehen von der Einstellung web/%secure/base_urlder Test-URL)?
Eine andere Möglichkeit, über diese Frage nachzudenken, besteht darin, sich zu überlegen, wie man aus meinen eigenen Produktionsdaten so etwas wie Magento-Beispieldaten generiert .
Auch core_url_rewritekann nur mit der Struktur importiert werden und einen Katalog URL Rewrites indizierte nach dem Import laufen, es sei denn , Sie all diese Aufzeichnungen müssen (für verschiedene Tests).
Sie können auch verlassene Karren säubern (Tipp:) sales_flat_quote. Sie können auch Bestellungen entfernen, wenn Sie sie nicht benötigen, und nur eine begrenzte Anzahl behalten
2) Konfigurationseinstellungen
web / (unsicher | sicher) / base_url
Kontakt-E-Mail-Adressen
Deaktivieren Sie email ( system/smtp/disable), damit Sie nicht versehentlich E-Mails senden
3) Kundeninformationen anonymisieren
Sie können das Anonygento- Modul für Magento verwenden
Schreiben Sie Ihr eigenes Skript, um Kundeninformationen / Kundenaufträge / etc. zu verschleiern
4) Moduleinstellungen
Sie können den Sandbox-Modus für Zahlungs- / Versandmodule aktivieren und die richtigen Einstellungen vornehmen
Prüfung der für verschiedene Integrationszwecke verwendeten Module (entweder deaktivieren oder auf Sandbox-Modus setzen)
Für Entwickler ist es in Ordnung, den Inhalt einiger Tabellen zu ignorieren. Für QA / Staging möchten Sie, dass all diese Tabellen die Produktion so genau wie möglich widerspiegeln.
Beeplogic
@FlorinelChris: Ich dachte, die Frage ginge darum, die DB-Migration zu vereinfachen und sie nicht so komplex zu machen :) Bu in irgendeiner Weise, gute Antwort!
user487772
@Tim der schwierige Teil ist, alle oben genannten Dinge in ein Skript zu schreiben. Danach ist es die einfache Lösung, es auszuführen.
FlorinelChis
2
Wir haben ein Skript geschrieben, um DB-Dumps für die Verzweigung zu behandeln. Lesen Sie diesen Artikel .
Das Grundprinzip besteht darin, dass es die local.xmlzum Abrufen der DB-Anmeldeinformationen erforderlichen Daten liest und dann die Daten auf dieser Basis ausgibt. Es teilt den Dump in zwei Teile, die Struktur und dann die Daten. Der Schlüssel ist jedoch, dass der herkömmliche Speicherauszugsprozess beschleunigt wird, indem nicht erforderliche Daten übersprungen werden. Außerdem werden Tabellensperren während des Speicherauszugs, die ansonsten Ihre Live-Site blockieren oder hängen lassen würden, am kritischsten verhindert.
Wenn Sie den MySQL-Speicherauszug haben, können Sie die URL ganz einfach mit ändern sed
sed -i 's/www.mydomain.com/staging.mydomain.com/g'./var/db.sql
Führen Sie dann einen MySQL-Import in Ihre neue Datenbank aus.
Ohne das Skript würde eine sehr einfache Version so aussehen.
mysqldump -hHostname -uUsername LiveDbname-p > db.sql
sed -i 's/www.mydomain.com/staging.mydomain.com/g' db.sql
mysql -hHostname -uUsername DevDbname-p < db.sql
Es gibt keinen Grund, die Datei local.xml zu löschen oder das Installationsprogramm erneut auszuführen, wenn Sie die URLs in der Datenbank auf diese Weise ändern.
Der gesamte Verzweigungsprozess wird in unserem Magento GIT-Handbuch ausführlich beschrieben . Dies ist ein guter Prozess zum Erstellen von Entwicklungszweigen, der die Live-Datenbank jedoch erheblich verkleinert. Tests werden also nicht ganz so sein wie auf der Live-Site.
Die Durchführung eines Vanille-DB-Dumps, sed replace und DB-Imports ist für eine Staging-Site ausreichend. Und wird die Live-Site so genau wie möglich wiedergeben.
In Bezug auf die Verhinderung der Kommunikation mit Kunden - wir haben es nie für notwendig gehalten, da wir immer bewusst Konten zum Testen erstellen und niemals echte Kundenaufträge zum Testen verwenden.
Eine Option für das E-Mail-Problem besteht darin, Ihre Entwicklungssite so zu konfigurieren, dass ALLE E-Mails an Sie umgeleitet werden. Fügt ein Stück Geist hinzu.
Wie Sie das tun, hängt von Ihrer Umgebung ab - für uns erledigt das Hinzufügen zum vhost die Aufgabe:
Angenommen, ich teile meinem Testsystem mit, dass ich eine Bestellung versandt habe. Wäre dies nicht eine E-Mail an den tatsächlichen Kunden?
Kojiro
Die einzigen anderen Elemente, die geändert werden müssen, sind die Registrierungsinformationen für Module von Drittanbietern, wenn Sie Schlüssel pro Domain ausführen, anstatt nur Aktivierungsschlüssel zu sein. Ich füge auch E-Mail-Adressen hinzu, damit Testbestellungen nicht am Bestellschalter, sondern auf ein Testkonto gesendet werden. Beim ersten Start sind lediglich sichere und unsichere baseUrls erforderlich. Wenn Sie dies häufig vorhaben, packen Sie alles in eine SQL-Datei und importieren Sie es nach dem Import Ihrer Magento-Datenbank.
Fiasco Labs
@kojiro - Nicht, wenn Sie einige Testkonten eingerichtet haben. Sprechen Sie mit Ihrem Unternehmens-E-Mail-Administrator, und lassen Sie ihn ein paar E-Mail-Aliase einrichten.
Fiasco Labs
@ Fiaskolabs Ich bin verwirrt. In diesem Szenario habe ich gerade eine Magento-Produktionsdatenbank mit echten Kunden importiert. Was nützen E-Mail-Aliase, wenn ich eine echte Bestellung mit einem echten Kunden bearbeite?
Kojiro
@kojiro Sie haben Recht, nachdem Sie einen Datensatz aus der Produktion importiert haben, müssen Sie Kunden- / vertrauliche Informationen bereinigen / aktualisieren. Dies ist keine gute Antwort, da sie die Situation nicht richtig anspricht.
Beeplogic
0
Wenn Sie dies versuchen, werden Benutzer-E-Mails verschlüsselt, um Ihr Problem zu lösen und versehentlich Live-Kunden aus der Testumgebung per E-Mail zu benachrichtigen
UPDATE customer_entity SET email = REPLACE(email,'@','-test@abcxyz123-')
Wir haben ein Skript geschrieben, um DB-Dumps für die Verzweigung zu behandeln. Lesen Sie diesen Artikel .
Das Grundprinzip besteht darin, dass es die
local.xml
zum Abrufen der DB-Anmeldeinformationen erforderlichen Daten liest und dann die Daten auf dieser Basis ausgibt. Es teilt den Dump in zwei Teile, die Struktur und dann die Daten. Der Schlüssel ist jedoch, dass der herkömmliche Speicherauszugsprozess beschleunigt wird, indem nicht erforderliche Daten übersprungen werden. Außerdem werden Tabellensperren während des Speicherauszugs, die ansonsten Ihre Live-Site blockieren oder hängen lassen würden, am kritischsten verhindert.Wenn Sie den MySQL-Speicherauszug haben, können Sie die URL ganz einfach mit ändern
sed
Führen Sie dann einen MySQL-Import in Ihre neue Datenbank aus.
Ohne das Skript würde eine sehr einfache Version so aussehen.
Es gibt keinen Grund, die Datei local.xml zu löschen oder das Installationsprogramm erneut auszuführen, wenn Sie die URLs in der Datenbank auf diese Weise ändern.
Der gesamte Verzweigungsprozess wird in unserem Magento GIT-Handbuch ausführlich beschrieben . Dies ist ein guter Prozess zum Erstellen von Entwicklungszweigen, der die Live-Datenbank jedoch erheblich verkleinert. Tests werden also nicht ganz so sein wie auf der Live-Site.
Die Durchführung eines Vanille-DB-Dumps, sed replace und DB-Imports ist für eine Staging-Site ausreichend. Und wird die Live-Site so genau wie möglich wiedergeben.
In Bezug auf die Verhinderung der Kommunikation mit Kunden - wir haben es nie für notwendig gehalten, da wir immer bewusst Konten zum Testen erstellen und niemals echte Kundenaufträge zum Testen verwenden.
quelle
Eine Option für das E-Mail-Problem besteht darin, Ihre Entwicklungssite so zu konfigurieren, dass ALLE E-Mails an Sie umgeleitet werden. Fügt ein Stück Geist hinzu.
Wie Sie das tun, hängt von Ihrer Umgebung ab - für uns erledigt das Hinzufügen zum vhost die Aufgabe:
quelle
Nichts. Das Ändern sicherer und unsicherer URLs ist völlig ausreichend.
Sie können auch
log_*
Tabellendaten weglassen , um den Speicherauszug zu vereinfachen.quelle
Wenn Sie dies versuchen, werden Benutzer-E-Mails verschlüsselt, um Ihr Problem zu lösen und versehentlich Live-Kunden aus der Testumgebung per E-Mail zu benachrichtigen
quelle