Diese Anleitung beschreibt, wie eine PostgreSQL-Datenbank von einem Server (z. B. Netcup* oder Railyway) zu einem neuen Ziel (z. B. Netcup)* migriert wird.
Die Verbindung erfolgt sicher über SSH-Tunneling, ohne Ports nach außen zu öffnen. Hier am Beispiel des Trading Bot von uncoded*.
Halte Folgendes bereit, bevor du beginnst:
- Zugangsdaten zum Quell-Server
- IP-Adresse (z. B. aus dem Netcup-Interface)
- SSH-Zugang (z. B.
root-Benutzer und Passwort)
- Docker-Zugriff auf dem Quell-Server
(z. B. mitdocker ps,docker exec) - Zugangsdaten zum Ziel-System
- Host, Port, Benutzer, Passwort
- Software lokal installiert
- Root- oder Admin-Passwort des Servers
- Optional: Admin-Zugang zu CapRover (falls Apps pausiert werden müssen)
-
Per SSH auf den Server verbinden:
ssh root@<server-ip>
-
Container-Name herausfinden:
docker ps | grep postgres -
In den Container wechseln:
docker exec -it <containername> bash
-
Interne IP anzeigen:
hostname -I
Beispielausgabe:
172.18.0.5→ Die zweite IP rechts ist die relevante.
In PowerShell auf deinem lokalen Rechner:
ssh -L 5433:172.18.0.5:5432 root@<SERVER_IP> -v5433= lokaler Port (z. B. 5434, falls 5433 schon belegt)172.18.0.5= interne IP des Containers5432= Standardport von PostgreSQL- Verbindung offen lassen (mit STRG + D kann man später trennen)
Jetzt läuft der Datenverkehr lokal über Port 5433 sicher zum Container.
Quell-Server (Netcup* oder CapRover)
- Host:
localhost - Port:
5433 - Maintenance DB:
postgres - Username:
postgres
- Verbindungsdaten laut Screenshot oder Anbieterangabe
Daten aus Public Network ermitteln.
TOSsollte auffalsestehen.- Apps wie Trading und Telegram sollten auf Instanz 0 gesetzt sein.
-
In pgAdmin rechtsklick auf
uncoded_db→ Backup -
General
- Name:
backup.sql - Format:
Plain
- Name:
-
Data Options
- Alle Sections aktivieren
-
Query Options
- INSERT aktivieren
- CREATE DATABASE aktivieren
-
Backup starten und speichern
-
In pgAdmin zweite Verbindung (Ziel-DB) öffnen
-
Rechtsklick auf
postgres→ Query Tool -
Aktive Verbindungen trennen:
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'uncoded_db';
-
Datenbank löschen:
DROP DATABASE uncoded_db;
-
Neu anlegen:
CREATE DATABASE uncoded_db WITH TEMPLATE = template0 ENCODING = 'UTF8' LOCALE_PROVIDER = libc LOCALE = 'en_US.utf8'
-
In der Übersicht auf die neue
uncoded_dbrechtsklicken → Query Tool -
Die zuvor gesicherte SQL-Datei öffnen und einfügen
-
Folgende Zeilen ggf. entfernen oder mit
--auskommentieren:SET transaction_timeout = 0; -- (kommt oft doppelt vor) \connect uncoded_db CREATE DATABASE uncoded_db WITH TEMPLATE = template0 ENCODING = 'UTF8' LOCALE_PROVIDER = libc LOCALE = 'en_US.utf8';
-
Ausführen und warten, bis alle Tabellen erstellt sind
- In pgAdmin unter
Schemas > Tablesprüfen, ob Tabellen vorhanden sind (z. B.activeorders) - Eine Tabelle öffnen, um sicherzustellen, dass Daten geladen wurden
- Danach Apps auf CapRover wieder aktivieren
Wenn alles geprüft ist, PowerShell-Verbindung mit STRG + D beenden. Die lokale Portweiterleitung wird dadurch geschlossen.
Du möchtest dich für diese Anleitung bedanken?
Die mit Sternchen (*) gekennzeichneten Links sind sogenannte Affiliate-Links
Weitere Repositories findest du hier: https://github.com/TylonHH
