Magento & amp; Subversion (SVN) - Erste Schritte für eine Entwicklungsumgebung?
Arbeite ich am Aufbau eines Magento-Website, und es ist bei weitem die meisten Mammut-Paket, mit dem ich gearbeitet habe. Ich habe beschlossen, eine richtige Entwicklung-server und die Verwendung von Subversion für die Versionskontrolle. Ich bin in ein paar Straßensperren und brauche etwas Hilfe.
Was ich bisher getan habe:
- Einrichten web-hosting auf einem host, der verwendet cPanel. Meine "Live" - Seite (mysite.com) befinden sich in ~/public_html/.
- Erstellt eine "Entwicklung" sub-Domain (dev.mysite.com), zeigt auf ~/public_html/dev/.
- Begann ein SVN-repository in ~/svn/. Meine repo enthält Ordner branches | tags | trunk.
- Importierten einem frisch entpackten magento-tarball (v. 1.3.2.4) in mein repo-trunk/magento.
- Erstellt zwei Datenbanken ein. mysite_live und b. mysite_dev.
- Ausgecheckt mit der magento-code aus meiner repo in ~/public_html/dev/(dev.mysite.com)
- Lief die erste Magento-Installer, die aufgefüllt meine mysite_dev Db erstellt und einige config-Dateien (app/etc/local.xml ist die einzige, die ich kenne - möglicherweise gibt es andere?).
Hier, wo ich bin stecken:
Also ich hab eine voll funktionsfähige Magento-Installation in meinem dev-Raum. Was ich nun tun möchte ist bekommen meine live-Website bereitgestellt, die identisch zu meinem dev-Website als Ausgangspunkt. Da die config anders ist in der app/etc/local.xml Datei; plus Magento speichert den Wert für {{base_url}} in der Datenbank, es ist nicht so einfach wie die Aktualisierung meiner svn trunk von meinem dev-site ist, dann Export/Import der db.
Bekommen wie ich weiter unten in der Straße mit diesem, möchte ich, dass es ein unkomplizierter Weg zu schieben alles auf meinem dev-Website über SVN und auf meiner live-site, zusammen mit dem halten Sie die Datenbanken synchronisiert, außer für den Wert von {{base_url}}. Ich habe gelesen, ein paar Beiträge im forum anderswo, dass die Referenz bei der Verwendung von svn:ignore zu vermeiden, bestimmte Umwelt-spezifischen Dateien und Verzeichnisse, aber nicht wissen, wie man auf meine live-Website, und sicherzustellen, dass alles ordnungsgemäß synchronisiert ist.
Sollte ich einfach eine Kopie der Basis-code aus trunk/magentoo aus meiner repo auf meiner live-site, space, führen Sie dann installieren, dann legen Sie svn zu ignorieren local.xml und davon ausgehen, dass Sie identisch sind, außer für die lokalen Unterschiede?
In diesem Punkt-ich weiß nur nicht, wie es weitergehen soll, und bin nur ungern machen alle Vermutungen im Fall es wird führen zu müssen, wischen Sie alles aus und beginnen Sie wieder in der nahen Zukunft.
Als seitliche Anmerkung - ich muss auch zum erstellen eines "Demo" - Zweig der code für eine andere subdomain; um den Menschen zu zeigen als proof-of-concept. Wahrscheinlich werde ich nur überqueren diese Brücke, wenn ich zu ihm kommen. Vielleicht werden Sie alle Sinn machen, mit der Zeit bekomme ich zu dieser Aufgabe.
tl;dr-version - wie verwalte ich die Magento Entwicklung&live-code&Db s mit SVN?
Danke an alle für die Zeit nehmen, zu Lesen und zu beantworten!
InformationsquelleAutor der Frage PlasmaFlux | 2010-01-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erste, was zu tun ist, überprüfen Sie in der installierten version des Programms. So, die Kopie des Programms in der repo ist eine Arbeitsgruppe ein, die Sie tatsächlich nutzen können. Dann werden Sie ignorieren müssen einige Dateien und Verzeichnisse, so dass Sie ausführen können, um die anderen Umgebungen.
local.xml
ist ein gutes Beispiel, aber auch ignorieren, auf die folgenden:Gibt es vermutlich auch noch andere, aber dies sollte Ihnen einen guten start. Wenn Sie denken, dass Sie möglicherweise änderungen an local.xml (und könnte man), Kopie local.xml zu den lokalen.xml.dist und überprüfen Sie die .dist version in den repo. Wenn Sie Kasse auf Ihren anderen Websites, die Sie noch haben, um die änderungen manuell, aber es wird einfacher sein, zu verfolgen.
Für die Datenbank, eine gängige Praxis ist, zu tun, einen mysqldump auf dem dev-Umgebung und halten, die sowohl im repository als auch.
mysqldump -u user -p database > mysqldump.sql
Müssen Sie Ihr Passwort eingeben. Nun die Kopie in der repo ist eine vollständige Kopie der Website. Ein anderes Umfeld, werden Sie überprüfen Sie heraus die gesamte code-Basis und importieren Sie dann die MySQL-Datei in die Datenbank.
Denken Sie daran, dass wenn Sie dies tun (und jedes mal, wenn Sie aktualisieren die Datenbank, in die repo und wollen dann mit den änderungen aktualisiert, die auf anderen Umgebungen) benötigen Sie zum ändern der {base_url} und {secure_url} in der Datenbank. Ich habe gesehen, einige Umgebungen, wo die Entwickler erstellte scripts, um dies zu erreichen automatisch.
Schließlich, versuchen, alle änderungen, um Ihre dev-Kopie der Website, da es hilft, halten Sie Ihre Datenbank synchronisieren. Wenn Sie änderungen auf der live-Kopie, ohne wenigstens auch reflektieren Sie in dev, werden Sie wahrscheinlich versehentlich überschreiben Sie später mit einen von den Halden und wundert sich dann, wo Ihre Funktionalität ging.
Hoffe, das hilft. Wenn Sie andere spezifische Fragen haben, lassen Sie es mich wissen.
Dank,
Joe
InformationsquelleAutor der Antwort Joseph Mastey
Ich weiß, das ist nicht genau das, was Sie bitten, sondern wollen einfach nur, Ihnen zu sagen über mein setup, da ich denke, es ist nicht praktisch, um weiterhin synchronisieren, die dev-Datenbank zu Produktion, sobald Sie live gehen. Du bist wahrscheinlich gehen zu wollen, um änderungen an den dev-Datenbank für die Prüfung, die nicht immer leicht wiederherstellen. Bauen Sie Ihre Inhalte (Produkte, etc.) in die live-Umgebung und gelegentlich kopieren Sie die Datenbank zurück, um die Entwicklung finde ich sehr gut funktioniert.
Für mein Projekt, das ich gebaut habe, meine live-Umgebung durch die Installation von Magento von Grund auf neu und nur ausgecheckt werden die Verzeichnisse aus dem SVN auf diese Punkte:
Alle Anpassungen, die Sie sollte in einem dieser Verzeichnisse.
Schaffe ich dieses Verzeichnis manuell auf dem live-server:
Müssen Sie nur eine Datei zu erstellen, wenn Sie ein neues Modul erstellt sich selbst.
InformationsquelleAutor der Antwort Vincent
Schrieb ich Modul-Manager speziell diese Probleme zu lösen.
Ich nicht empfehlen, die Versionierung app/etc/local.xml so, dass jede Umgebung können verschiedene Datenbank-Anmeldedaten verwenden, aber ich empfehlen, die Versionierung alles andere mit modman. Auch empfehle ich, dass modman ein Skript ausführen, das löscht Magento cache und gilt-Datenbank-updates wie die einen finden Sie hier.
Wenn Sie richtig eingesetzt, können Sie "svn commit", um Ihre Stamm-und einfach laufen "modman" update-all" auf Ihrer anderen Umgebungen (einschließlich live) zu aktualisieren. Für ein Sicheres update auf 1.4, die Sie ausführen können
InformationsquelleAutor der Antwort ColinM
verwenden wir verschiedene local.xml -Dateien. Die Benennung ist bis zu Ihnen, aber lokalen.xml.qa-oder lokalen.xml.Leben mit Umwelt-spezifische Verbindungszeichenfolge werden empfohlen 🙂
ein Hinweis: magento bearbeitet alle *.xml-Dateien in app/etc-Ordner, also seien Sie vorsichtig bei der Benennung
InformationsquelleAutor der Antwort Jaro
Hier ist das bash-Skript , die hilft zu Satz
svn:ignore
Eigenschaftswerte für Magento-Projekt.InformationsquelleAutor der Antwort Roman Snitko