Hallo @muplagama und @richard
bezüglich dem Einspielen der oben genannten Migrations-Scripte ins System könnt ihr folgendermaßen vorgehen:
- erstmal ein komplettes Backup der Datenbank erstellen
- bei laufendem docker-compose project
- via
docker exec -it metasfresh-docker_db_1 /bin/bash
auf den DB-Server einloggen
- ein neues Verzeichnis (z.B.
/cleanup_scripts
) innerhalb des Containers anlegen
- wieder aus dem Container ausloggen (
exit
)
- via
docker cp
die SQL-Scripte in das neu erstellte Verzeichnis im Container kopieren ( https://docs.docker.com/engine/reference/commandline/cp/ )
- wieder in den Container einloggen (via
docker exec -it
… siehe oben)
- auf den Benutzer
postgres
wechseln (su postgres
)
- die SQL-Scripte auf die Datenbank
metasfresh
via psql
anwenden (psql -d metasfresh -f /cleanup_scripts/*.sql
)
Dadurch werden die Befehle innerhalb der SQL-Dateien direkt in die Datenbank eingespeist.
Es gibt mit Sicherheit auch eine kürzere, direkte Methode um die SQL-Dateien einzuspielen aber das oben geschriebene Verfahren ist am einfachsten, wenn man nicht so tief in der Docker-Materie steckt.
Nach dem Einspielen der SQL-Skripte solltet ihr den kompletten metasfresh-docker Stack neustarten (docker-compose down && docker-compose up -d
).
Mit diesem Vorgehen könnt ihr auch eigene SQL-Dateien in die Datenbank einspielen.
Wenn ihr nur eine einzige Query durchführen möchtet, könnt ihr das übrigens auch wie folgt machen:
docker exec -u postgres metasfresh-docker_db_1 psql -d metasfresh -c "SELECT * FROM sometable;"