Mehrere Magento-Entwicklungsumgebungen mit verschiedenen Datenbanken nutzen
Nachdem ich kürzlich beschrieben habe, wie ich WordPress für verschiedene Entwicklungs- und Testumgebungen konfiguriert habe, dass es immer eine andere MySQl-Datenbank verwendet, habe ich nun herausgefunden wie eine ähnliche Logik auch für Magento angewendet werden kann.
Im Gegensatz zu WordPress speichert Magento die Datenabank-Logins in einer XML-Datei, nämlich app/etc/local.xml
. Für die einzelnen Umgebungen hatte ich mir sowieso schon Kopien dieser Datei angelegt und als local.xml.dev
, local.xml.test
und local.xml.live
angelegt, für den jeweiligen Anwendungsfall entsprechend benannt und bei Bedarf einfach über die jeweils vorhandene Originaldatei kopiert.
Nachdem ich für WordPress eine Lösung gefunden habe, wie ich die Konfiguration für jede Umgebung einfach handhaben und wechseln kann, bin ich auf diesen (oder wir es dieser?) Blogbeitrag gestoßen, die ein ähnliches Vorgehen für Magento anweden.
Im Grunde ist es ganz einfach: Mit dem Konsolenzugang zum Webserver erstellst du einfach einen “symbolischen Link” (SymLink) zu einer der Dateien und nennst ihn local.xml
benannt. Du erstellst dir also mehrere Kopien der lokalen Konfigurationseinstellung und benennst jede dieser Dateien eindeutig. Nachdem due die Dateien auf den Webserver hochgeladen hast, loggst du dich dort z.B. mit dem Putty-Client oder einer anderen Terminal-Software ein.
Wenn du dann in das Verzeichnis app/etc
der Magento-Webseite wechselst, erstellt du einfach nur noch einen symbolischen Link zu der Konfigurationsdatei, die gerade verwendet werden soll:
ln -s local.xml.test local.xml
Das Schema für diese Befehlseingabe ist
ln -s [Zieldateiname] ["Datei"-Name des symbolischen Links]
Ich habe dann noch sicherheitshalber den symbolischen Link mit dem Namen local.xml
in die .gitignore
aufgenommen, damit der Link nicht dauernd geändert werden muss. Ich bin mir aber nicht sicher, ob git das überhaupt verfolgen kann – ich glaube die Informationen, welches Ziel der Link hat, stehen gar nicht in der Datei selbst.
Quellen:
- My suggestion on setting up Magento’s app/etc/local.xml file for dev/stage/prod environments | Mark Shust
- Magento multiple environments using symbolic links, Patrick Pohler
One thought on “Magento development environments with different database connections”