ich hab da mal ne grundsätzliche Frage. Wie macht ihr das mit Git. Nur das Theme Verzeichnis oder komplett.
Ich hab einen installation lokal und eine live.
Wenn ich jetzt ein neues plugin benötige, installier ich das lokal, teste es und schieb es dann hoch. Jetzt hab ich die aktuellen Dateien auf meinem Server aber irgendwelche Datenbankänderungen werden ja nicht übermittelt, also muß ich auf dem Produktionssystem auch nochmal das Plugin installieren.
Das kann ja nicht ganz richtig sein. Wie macht man so was richtig?
Es ist kein Problem, es ist Realität. Shopware und Plugins installieren. Medien sichern. Themes und eigene Plugins im Git halten. Auf Knopfdruck geht leider nichts.
geht ja nicht darum wie ich dateien synchronisiere…
“Wenn ich jetzt ein neues plugin benötige, installier ich das lokal, teste es und schieb es dann hoch. Jetzt hab ich die aktuellen Dateien auf meinem Server aber irgendwelche Datenbankänderungen werden ja nicht übermittelt, also muß ich auf dem Produktionssystem auch nochmal das Plugin installieren.”
Danke für deine Antwort. Soweit war mir davon vieles bekannt.
Mein eigentliches Problem ist aber folgendes:
Ich installiere ein Plugin lokal, das ändert etwas an der Datenbank oder fügt eigene Tabellen ein.
Jetzt schieb ich alles auf den live Server, habe die neuen plugin Dateine dann zwar drin aber nicht die Datenbankänderungen, dh ich muß das Plugin auch nochmal auf dem live Server installieren.
Git es da eventuell eine bessere Vorgehensweise um Änderungen an der DB hochzuladen? Einen sqldump einspielen funktioniert ja so nicht, weil ich ja die live daten überschreiben würde.
Dass man die Datenbank nicht synchronisieren kann/sollte, sind wir uns einig, oder? (Man stelle sich Sync-Konfilkte im Liveshop vor/ Dateninkositenzen)
Bei Laravel gibts z.B migrations
Die gibt es in Shopware auch. Werden allerdings vom Update-Skript verwendet. Du könntest dir selbst ein Plugin schreiben und dann dort Migrations pflegen. Dann muss du aber alle Plugineinstellungen / Änderungen als SQL Statements schreiben. Problematisch: Wenn der Liveshop weitere Sub-/Sprachshops enthält und dein Dev-System nicht.
M.m.n. nicht wirklich praktikabel. Außer für Datenbanktabellenänderungen.
Du könntest dir zum Beispiel ein Deployment-Skript schreiben. Welches auf dem Liveserver Plugins installiert, Einstellungen setzt etc.
Wir installieren das Plugin aktuell per Hand im Live System nach dem Deployment und nehmen dann dort auch die Einstellungen vor. Wir haben in unserem Jira ein Feld „Deplyoment Instructions“. Dort tragen wir alle Dinge ein, die von Hand vom Deployer vorgenommen werden müssen.
Automatische Migrations wären toll. Aber wie simkli schon schreibt, müsste man sich sowas selber basteln. Ich denke die Shopware CLI gibt einem schon alles was man dafür braucht.