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
- Migrationsjob in der Web-UI erstellen.
- Datenbanksicherung über den Browser hochladen.
- Der Dienst erstellt automatisch
manifest.json. - Datenbankwiederherstellung auslösen.
- Dateiverzeichnisse über SFTP hochladen.
- Upload als abgeschlossen markieren.
- Upload validieren.
- Wiederherstellung ausführen.
- 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.
Romexis Docker Wiki
English
Getting Started
- Project Overview
- Architecture
- Quick Start
- Synology Quick Start
- Use with Docker + WSL in Windows
- Compose Runtime
- Configuration
- Container Images
Runtime Services
- Romexis Admin
- Romexis Client
- mRomexis Web App
- Runtime Layout
- Backup and Restore
- Troubleshooting
- Security
Build System
Database
Migration
Development
Source Documents
Deutsch
Erste Schritte
- Projektübersicht
- Architektur
- Schnellstart
- Synology Quick Start
- Nutzung mit Docker + WSL unter Windows
- Compose-Runtime
- Konfiguration
- Container-Images
Runtime-Dienste
- Romexis Admin
- Romexis Client
- mRomexis Web App
- Runtime-Layout
- Sicherung und Wiederherstellung
- Fehlerbehebung
- Sicherheit
Build-System
Datenbank
Migration
Entwicklung
Quelldokumente
Romexis Docker Project Wiki / Romexis-Docker-Projekt-Wiki
English Home · Deutsche Startseite · English source documents · Deutsche Quelldokumente · Security · Sicherheit
Internal operations and development wiki / Internes Betriebs- und Entwicklungswiki