25개 이상의 토픽을 선택하실 수 없습니다.
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- #!/bin/bash
- # -------------------------------------------------------
- # pull-live-db.sh — Live-DB auf lokale DDEV-Instanz ziehen
- #
- # ACHTUNG: Nur Live → Local. Niemals umgekehrt!
- # Dieser Dump wird NICHT ins Git eingecheckt.
- # -------------------------------------------------------
- set -e
-
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
- cd "$SCRIPT_DIR/.."
-
- # .env.local laden
- if [ ! -f ".env.local" ]; then
- echo "❌ .env.local nicht gefunden. Bitte .env.example kopieren und ausfüllen."
- exit 1
- fi
- source .env.local
-
- # Pflichtfelder prüfen
- if [ -z "$LIVE_SSH_HOST" ] || [ -z "$LIVE_SSH_USER" ] || [ -z "$LIVE_DB_NAME" ]; then
- echo "❌ Bitte LIVE_SSH_HOST, LIVE_SSH_USER und LIVE_DB_NAME in .env.local setzen."
- exit 1
- fi
-
- TEMP_DUMP="/tmp/live-dump-$(date +%Y%m%d-%H%M%S).sql.gz"
- LOCAL_DUMP="db/live-dump.sql"
-
- echo "🔌 Verbinde mit ${LIVE_SSH_USER}@${LIVE_SSH_HOST}:${LIVE_SSH_PORT}..."
- echo "🗄️ Exportiere Live-Datenbank '${LIVE_DB_NAME}'..."
-
- # DB auf dem Server dumpen und direkt runterladen
- ssh -p "${LIVE_SSH_PORT}" "${LIVE_SSH_USER}@${LIVE_SSH_HOST}" \
- "mysqldump -u${LIVE_DB_USER} -p${LIVE_DB_PASS} -h${LIVE_DB_HOST} ${LIVE_DB_NAME} | gzip" \
- > "${TEMP_DUMP}"
-
- echo "📥 Dump heruntergeladen. Importiere in DDEV..."
-
- gunzip < "${TEMP_DUMP}" > "${LOCAL_DUMP}.tmp"
- ddev import-db --file="${LOCAL_DUMP}.tmp"
- mv "${LOCAL_DUMP}.tmp" "${LOCAL_DUMP}"
- rm -f "${TEMP_DUMP}"
-
- echo ""
- echo "✅ Live-DB erfolgreich lokal importiert."
- echo "📁 Lokaler Dump gespeichert unter: ${LOCAL_DUMP} (nicht eingecheckt)"
- echo ""
-
- # Optional: Files synchronisieren
- if [ ! -z "$LIVE_FILES_PATH" ]; then
- read -p "📂 Auch files/ synchronisieren? (j/N): " sync_files
- if [ "$sync_files" = "j" ] || [ "$sync_files" = "J" ]; then
- echo "🔄 Synchronisiere files/..."
- rsync -avz --progress \
- -e "ssh -p ${LIVE_SSH_PORT}" \
- "${LIVE_SSH_USER}@${LIVE_SSH_HOST}:${LIVE_FILES_PATH}/" \
- "./public/files/"
- echo "✅ Files synchronisiert."
- fi
- fi
|