67 lines
2 KiB
Bash
Executable file
67 lines
2 KiB
Bash
Executable file
#!/bin/bash
|
||
# VERALTET – nur noch für historische Stände relevant.
|
||
# Das damalige Ziel ./uploads/ gibt es nicht mehr; Belege liegen inzwischen in
|
||
# ./data/belege/, das Logo in ./data/logo/. Für den Umzug aus ./uploads/ in die
|
||
# heutige Struktur ist scripts/migrate-datenverzeichnis.sh zuständig.
|
||
#
|
||
# Einmalige Migration: Uploads vom named Docker Volume in ./uploads/ (Bind Mount)
|
||
# Vor dem ersten "docker compose up" mit dem neuen docker-compose.yml ausführen.
|
||
#
|
||
# Das Script ist idempotent: bereits vorhandene Dateien in ./uploads/ werden
|
||
# nicht überschrieben. Es ist sicher, es mehrfach auszuführen.
|
||
#
|
||
# Usage: ./scripts/migrate-uploads-to-bindmount.sh
|
||
|
||
set -e
|
||
|
||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
PROJECT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||
TARGET_DIR="$PROJECT_DIR/uploads"
|
||
VOLUME_NAME="steuerkram_uploads"
|
||
|
||
echo "=== Uploads-Migration: named Volume → Bind Mount ==="
|
||
echo "Zielverzeichnis: $TARGET_DIR"
|
||
echo ""
|
||
|
||
# Prüfen ob das named Volume existiert
|
||
if ! docker volume ls --format '{{.Name}}' | grep -qx "$VOLUME_NAME"; then
|
||
echo "Named Volume '$VOLUME_NAME' nicht gefunden – nichts zu migrieren."
|
||
echo "Zielverzeichnis wird angelegt (falls nicht vorhanden)."
|
||
mkdir -p "$TARGET_DIR"
|
||
echo "Fertig."
|
||
exit 0
|
||
fi
|
||
|
||
# Anzahl Dateien im Volume ermitteln
|
||
FILE_COUNT=$(docker run --rm \
|
||
-v "$VOLUME_NAME:/src" \
|
||
alpine \
|
||
find /src -type f | wc -l)
|
||
|
||
echo "Dateien im named Volume: $FILE_COUNT"
|
||
|
||
if [ "$FILE_COUNT" -eq 0 ]; then
|
||
echo "Volume ist leer – nichts zu kopieren."
|
||
mkdir -p "$TARGET_DIR"
|
||
echo "Fertig."
|
||
exit 0
|
||
fi
|
||
|
||
mkdir -p "$TARGET_DIR"
|
||
|
||
echo "Kopiere Dateien ins Bind-Mount-Verzeichnis..."
|
||
docker run --rm \
|
||
-v "$VOLUME_NAME:/src" \
|
||
-v "$TARGET_DIR:/dst" \
|
||
alpine \
|
||
sh -c 'cp -r /src/. /dst/'
|
||
|
||
COPIED=$(find "$TARGET_DIR" -type f | wc -l)
|
||
echo ""
|
||
echo "Migration abgeschlossen: $COPIED Dateien in $TARGET_DIR"
|
||
echo ""
|
||
echo "Nächste Schritte:"
|
||
echo " docker compose up -d"
|
||
echo ""
|
||
echo "Das named Volume '$VOLUME_NAME' kann danach gelöscht werden:"
|
||
echo " docker volume rm $VOLUME_NAME"
|