Hallo zusammen,
nachdem beim letzten Twitch Stream das Theme aufkam, wie man eine externe Datenbank ins eigene DDEV Projekt importieren kann, wollte ich kurz mal mal Script mit euch teilen.
Ich hatte mich vorher noch gar nicht damit beschäftigt und immer mühevoll per PHPMyAdmin die Datenbank exportiert und dann ins DDEV importiert. Nach dem Stream wollte ich das mal per Script ausprobieren und habe meinen Kumpel ChatGPT um Rat gefragt.
Folgendes Script holt sich per mysqldump die Datenbank von Extern und spielt sie lokal ein. Natürlich wird vorher nochmal gefragt, ob man wirklich die Datenbank überspielen will. Die Zugangsdaten werden in der .env Datei im Projektroot gespeichert.
Das könnte dann zum Beispiel so aussehen.
REMOTE_DB_HOST=externerhorst.de
REMOTE_DB_USER=ich
REMOTE_DB_PASSWORD=joh316
REMOTE_DB_NAME=live
Ich muss natürlich nicht dazu sagen, dass das nicht meine echten Daten sind und dass man diese niemals für eine Live-Seite nutzen sollte, das sind nur Demo-Daten 😉
Das DDEV Script liegt hier: https://gist.github.com/PKuhlmay/edfaf1d0392d5e42dcd741f1f10f810b
Das Script dient erstmal nur als grobe Vorlage. Für mich funktioniert das Script recht gut und ich habe auch keine riesengroße Datenbank. Je nach Internet-Verbindung und Größe kann man hier sicherlich noch einige Tabellen ausschließen oder, wie im Stream vorgeschlagen, "typo3 database:export" nutzen. Das habe ich jetzt selbst nicht gemacht, da ich das bisher auch noch nie genutzt habe.
Ich muss noch hinzufügen, dass hier eine Verbindung zu einer Datenbank hergestellt wird und von dort ein Dump geladen wird. Das sollte natürlich immer mit Vorsicht ausgeführt werden. Wenn Ihr nicht wisst, was mysqldump tut, dann solltet ihr erstmal die Finger davon lassen und ich übernehme hier auch keine Verantwortung oder Support. Ich wollte dieses Script einfach nur für andere Teilen, die sowas auch mal machen wollten und ggf. schon danach gesucht haben. Wenn Eure Datenbank sehr groß ist, könnte es auch zu Problemen auf dem Server kommen, wenn zum Beispiel der Speicherplatz nicht mehr ausreicht.