Clone
1
Migration Service.de
Patrick Gniza edited this page 2026-08-17 10:48:39 +02:00

Deutsch | English

Migrationsdienst

Der Romexis-Migrationsdienst hilft dabei, eine vorhandene Romexis-Installation in den Docker-basierten Romexis-Server-Stack zu migrieren.

Er stellt bereit:

  • Flask-Web-UI
  • REST-API
  • temporäre SFTP-Benutzer
  • Zustandsverfolgung von Migrationsjobs
  • Upload von Datenbanksicherungen
  • Manifest-Erstellung
  • Upload-Validierung
  • Orchestrierung der Wiederherstellung
  • abschließenden Abschluss-/Abbruchworkflow

Warum ein Migrationsdienst?

Romexis-Installationen können enthalten:

  • große SQL-Server-Sicherungen
  • große Bildverzeichnisse
  • Ergo-Datenverzeichnisse
  • Cache-Verzeichnisse
  • sehr viele kleine Dateien

Browser-Uploads allein sind dafür nicht ideal. Deshalb kombiniert der Migrationsdienst:

Web UI / API
  for orchestration and state

SFTP
  for large file and directory transfer

Zustand eines Migrationsjobs

Migrationsjobs werden als JSON-Zustandsdateien gespeichert.

Typischer Workflow:

created
  -> database_uploaded
  -> database_restored
  -> upload_complete
  -> validated
  -> restored
  -> completed

Endzustände:

completed
cancelled
failed

Lebenszyklus der SFTP-Benutzer

Der Dienst erstellt für jede aktive Migration einen temporären SFTP-Benutzer.

Wichtiges Verhalten:

  • aktive Jobs erstellen ihre SFTP-Benutzer beim Start des Dienstes erneut
  • abgeschlossene Jobs dürfen keine SFTP-Benutzer erneut erstellen
  • abgebrochene Jobs dürfen keine SFTP-Benutzer erneut erstellen
  • fehlgeschlagene Jobs dürfen keine SFTP-Benutzer erneut erstellen, sofern sie nicht bewusst reaktiviert wurden
  • das Abschließen oder Abbrechen eines Jobs entfernt oder deaktiviert den temporären SFTP-Zugriff

Manueller Browser-Workflow

  1. Migrationsjob in der Web-UI erstellen.
  2. Datenbanksicherung über den Browser hochladen.
  3. Der Dienst erstellt automatisch manifest.json.
  4. Datenbankwiederherstellung auslösen.
  5. Dateiverzeichnisse über SFTP hochladen.
  6. Upload als abgeschlossen markieren.
  7. Upload validieren.
  8. Wiederherstellung ausführen.
  9. Migration abschließen und SFTP-Zugriff entfernen.

SFTP-Upload

Die Web-UI zeigt die SFTP-Zugangsdaten und Beispielbefehle an.

Typische rclone-Einrichtung:

rclone config create romexis-migration sftp \
  host <host> \
  port <port> \
  user <username> \
  pass "$(rclone obscure '<password>')"

Bilder hochladen:

rclone sync "/PATH/TO/LOCAL/romexis_images" \
  "romexis-migration:/romexis_images" \
  --progress \
  --transfers 4 \
  --checkers 8

Ergo-Daten hochladen:

rclone sync "/PATH/TO/LOCAL/romexis_ergodata" \
  "romexis-migration:/romexis_ergodata" \
  --progress \
  --transfers 4 \
  --checkers 8

Optionaler Cache-Upload:

rclone sync "/PATH/TO/LOCAL/romexis_cache" \
  "romexis-migration:/romexis_cache" \
  --progress \
  --transfers 4 \
  --checkers 8

Neustartkoordination

Der Migrationsdienst und der Romexis-Container koordinieren Neustarts über eine gemeinsame Zustandsdatei:

/data/romexis_images/.romexis_restart_state

Der Migrationsdienst schreibt eine ausstehende Neustartanforderung.

Der Romexis-Entrypoint/-Prozess beobachtet den Zustand, startet den Romexis-Dienst neu und schreibt das Ergebnis.

Der Migrationsdienst liest das Ergebnis und entfernt die Zustandsdatei.