Haben Sie Fragen? Senden Sie uns doch eine Nachricht

OneSystems GmbH

OneSystems GmbH

System Management aus der Schweiz

+41 44 586 40 18
Email: info@onesystems.ch

OneSystems GmbH
Grindlenstrasse 9, 9630 Wattwil, Schweiz

Open in Google Maps
  • Home
  • Über uns
  • Beratung & Betrieb
  • Dienstleistungen
    • Web Hosting
    • E-Mail Hosting
    • Ihre eigene Daten Cloud
  • Produkte
    • BackupPilot
    • OneTools
      • OneAI – AI Gateway
      • OneRun – Automatisierung
  • Blog
  • Kontakt
    • Remote Support
  • Home
  • Blog
  • Docker
  • Migration von Datenbanken in Docker: So gelingt das Upgrade sicher und sauber
28. Oktober 2026

Migration von Datenbanken in Docker: So gelingt das Upgrade sicher und sauber

Migration von Datenbanken in Docker: So gelingt das Upgrade sicher und sauber

by Michael Kleger / Donnerstag, 01 Mai 2025 / Published in Docker, Migration

Datenbank-Upgrades gehören zu den Aufgaben, die man selten gern anfasst – vor allem, wenn produktive Systeme davon abhängen. Doch spätestens wenn eine Anwendung wie z.B. Authentik ein bestimmtes Datenbank-Mindestlevel verlangt (z. B. PostgreSQL ≥ 13), führt kein Weg an einer Migration vorbei.

In diesem Artikel zeige ich praxisnah, wie du eine bestehende MariaDB- oder PostgreSQL-Datenbank in einem Docker-Setup sicher auf eine neue Version migrierst.

Ob du eine produktive Authentik-Instanz migrierst oder deine Datenbank einfach sauber aktualisieren willst: Diese Anleitung führt dich Schritt für Schritt durch den Prozess.

    1. Alle Container ausser der Datenbank stoppen damit nichts mehr an den Daten in der Datenbank verändert wird
    2. Ein Backup der Datenbank ausführen
      1. Container ID herausfinden
        docker ps | grep "db"
      2. Dump ausführen
        1. PostgreSQL
          docker exec <container-id> pg_dumpall -U pg-user > pg-old.sql
        2. MariaDB
          docker exec <container-id> bash -c 'mysqldump -u mariadb-user -p mariadb-db' > mariadb-old.sql
      3. Wenn die Datenbank direkt auf ein im Dateisystem bestehenden Ordner schreibt muss der „neu“ angelegt werden und damit bei einem fehler wieder auf den „alten“ stand zurückgegriffen werden kann.
        mv database database.bak
        mkdir database
    3. Docker Container DB stoppen und in die Compose Datei bearbeiten
      1. Neues Image hinzufügen
      2. alle anderen Container Kommentieren mit einem # damit die aktuell noch nicht gestartet werden
      3. Stack starten
        docker compose up -d
      4. Neue Container ID herausfinden
        docker ps | grep "db"
      5. Container Log prüfen ob keine Fehler oder Warnungen aufgetaucht sind und der Container läuft
        docker logs <container-id>
      6. Dump wieder importieren
        1. PostgreSQL
          cat pg-old.sql | docker exec -i <container-id> psql -U postgres
        2. MariaDB
          cat mariadb-old.sql | docker exec -i <container-id> bash -c 'mariadb -u mariadb-user -p'
      7. Bei mir gab es nach dem Importieren Berechtigungsproblem, daher gleich nach dem importieren die Berechtigungen neu setzen
        1. PostgreSQL
          docker exec -it <container-id> psql -U pg-user
          GRANT ALL PRIVILEGES ON DATABASE pg-user TO pg-db;
          
        2. MariaDB
          docker exec -it <container-id> bash -c 'mariadb -u mariadb-user -p mariadb-db'
          GRANT ALL PRIVILEGES ON mariadb-db.* TO 'mariadb-user'@'%';
    4. Alle Container wieder normal starten
      1. Alles wieder stoppen
        docker compose down
      2. Alle Kommentierten # Container in der Compose Datei wieder auskommentieren
      3. Alles starten
        docker compose up -d

 

Evtl. muss je nach Umgebung der komplette Stack nochmals neugestartet werden da noch Tabellen oder Schema Updates durchgeführt wurden mit der neuen Datenbank Version.

  • Tweet
Tagged under: Docker, MariaDB, Migration, PostgreSQL

About Michael Kleger

What you can read next

Docker Desktop unter Ubuntu installieren
Der Weg von Windows zu Linux (Teil 1)
Mailrelay + SMTP OAuth Relay: SMTP ohne Passwort, bereit für Microsoft 365

Schreibe einen Kommentar Antwort abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden.

Letzten Beiträge

  • Forgejo mit Fail2Ban absichern: Unsere Konfiguration gegen Crawler und Scanner

    Im letzten Beitrag haben wir gezeigt, wie ein s...
  • Wie Monitoring und Fail2Ban über 600’000 IPs blockiert haben

    Ein öffentlich erreichbarer Git-Server, eine da...
  • LenoQuectel RM520N-GL 5G Modem unter Ubuntu 26.04 zum Laufen bringen

    Wer schon einmal versucht hat, ein brandneues W...
  • Checkmk Agent Update Fehler: libz.so.1 failed to map segment from shared object

    Beim Ausführen des Checkmk Agent Updaters kann ...
  • PostgreSQL Wartung automatisieren

    PostgreSQL ist eine sehr stabile und leistungsf...

Neueste Kommentare

  • Michael Kleger zu Mailrelay + SMTP OAuth Relay: SMTP ohne Passwort, bereit für Microsoft 365
  • Joerg zu Mailrelay + SMTP OAuth Relay: SMTP ohne Passwort, bereit für Microsoft 365
  • Forgejo mit Fail2Ban absichern: Unsere Konfiguration gegen Crawler und Scanner - OneSystems GmbH zu Wie Monitoring und Fail2Ban über 600’000 IPs blockiert haben
  • Computer: Betriebssystem Linux – Dietrichs Blog zu Remote Desktop mit Linux Mint 19
  • Ein schlanker SMTP-Relay-Container für moderne Infrastrukturen - OneSystems GmbH zu Mailrelay + SMTP OAuth Relay: SMTP ohne Passwort, bereit für Microsoft 365

Categories

  • b1gMail
  • CentOS
  • Checkmk
  • Debian
  • Docker
  • Fail2Ban
  • Identitätsanbieter
  • Linux
  • Mac OSX
  • Microsoft Exchange
  • Microsoft Outlook
  • Migration
  • Mint
  • Monitoring
  • Neuigkeiten
  • Nextcloud
  • PowerShell
  • Python
  • Raspberry Pi
  • Sicherheit
  • Tipps und Tricks
  • Ubuntu
  • VMware
  • Webseiten
  • Webserver
  • Windows
  • Windows zu Linux

Die OneSystems GmbH ist ein unabhängiger IT-Dienstleister mit Sitz in Wattwil. Wir planen, realisieren und betreiben moderne IT-Infrastrukturen, Cloud- und Hosting-Lösungen für Unternehmen.
Persönlich betreut, zuverlässig betrieben und mit einem klaren Fokus auf Sicherheit und nachhaltige Lösungen.

Letzten Blog Posts

  • Forgejo mit Fail2Ban absichern: Unsere Konfiguration gegen Crawler und Scanner

  • Wie Monitoring und Fail2Ban über 600’000 IPs blockiert haben

  • LenoQuectel RM520N-GL 5G Modem unter Ubuntu 26.04 zum Laufen bringen

Kontakt

Kontaktformular

OneSystems GmbH
Grindlenstrasse 9
9630 Wattwil
Schweiz

Copyright © 2018-2026 OneSystems GmbH, Alle Rechte vorbehalten.
Impressum | Datenschutzerklärung | AGBs | Kontakt

TOP