Refactor update-backend.sh script for improved .env file handling and backup process
- Updated the script to securely back up .env files before deleting the old backend, ensuring no loss of environment configurations. - Enhanced the restoration process of .env files with clearer logging for success and warnings when no files are found. - Simplified the logic for copying the new backend while excluding .env files, improving clarity and maintainability of the script.
This commit is contained in:
@@ -20,54 +20,56 @@ rm -rf tmp/
|
|||||||
echo "Installing dependencies..."
|
echo "Installing dependencies..."
|
||||||
npm ci --production
|
npm ci --production
|
||||||
|
|
||||||
# Altes Backend löschen und neues kopieren
|
# Sichere .env-Dateien aus /opt/yourpart/backend temporär
|
||||||
echo "Lösche altes Backend (außer .env)..."
|
TEMP_ENV_DIR="/tmp/yourpart-env-backup-$$"
|
||||||
# Sichere .env-Dateien temporär
|
echo "Sichere .env-Dateien aus /opt/yourpart/backend..."
|
||||||
TEMP_ENV_DIR="/tmp/yourpart-backend-env-$$"
|
|
||||||
if [ -d /opt/yourpart/backend ]; then
|
|
||||||
sudo mkdir -p "$TEMP_ENV_DIR"
|
sudo mkdir -p "$TEMP_ENV_DIR"
|
||||||
sudo find /opt/yourpart/backend -maxdepth 1 -name '.env*' -type f -exec sudo cp {} "$TEMP_ENV_DIR/" \; 2>/dev/null || true
|
if [ -d /opt/yourpart/backend ]; then
|
||||||
# Lösche alles im Backend-Verzeichnis
|
sudo find /opt/yourpart/backend -maxdepth 1 -name '.env*' -type f -exec cp {} "$TEMP_ENV_DIR/" \; 2>/dev/null || true
|
||||||
sudo rm -rf /opt/yourpart/backend/* /opt/yourpart/backend/.[!.]* 2>/dev/null || true
|
if [ "$(ls -A $TEMP_ENV_DIR 2>/dev/null)" ]; then
|
||||||
# Stelle .env-Dateien wieder her
|
echo "✓ .env-Dateien gesichert: $(ls $TEMP_ENV_DIR)"
|
||||||
if [ -d "$TEMP_ENV_DIR" ] && [ "$(ls -A $TEMP_ENV_DIR 2>/dev/null)" ]; then
|
else
|
||||||
sudo cp "$TEMP_ENV_DIR"/* /opt/yourpart/backend/ 2>/dev/null || true
|
echo "⚠ Keine .env-Dateien in /opt/yourpart/backend gefunden"
|
||||||
echo "✓ .env-Dateien wurden gesichert und wiederhergestellt"
|
|
||||||
fi
|
fi
|
||||||
sudo rm -rf "$TEMP_ENV_DIR"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Erstelle Backend-Verzeichnis (falls nicht vorhanden)..."
|
# Altes Backend löschen
|
||||||
|
echo "Lösche altes Backend..."
|
||||||
|
sudo rm -rf /opt/yourpart/backend
|
||||||
|
|
||||||
|
# Erstelle Backend-Verzeichnis
|
||||||
|
echo "Erstelle Backend-Verzeichnis..."
|
||||||
sudo mkdir -p /opt/yourpart/backend
|
sudo mkdir -p /opt/yourpart/backend
|
||||||
|
|
||||||
echo "Kopiere neues Backend (ohne .env-Dateien)..."
|
# Kopiere neues Backend (ohne .env-Dateien aus dem Quellverzeichnis)
|
||||||
# Verwende rsync, um .env-Dateien auszuschließen
|
echo "Kopiere neues Backend..."
|
||||||
if command -v rsync &> /dev/null; then
|
if command -v rsync &> /dev/null; then
|
||||||
sudo rsync -av --exclude='.env*' --exclude='node_modules' . /opt/yourpart/backend/ 2>/dev/null
|
sudo rsync -av --exclude='.env*' --exclude='node_modules' . /opt/yourpart/backend/ 2>/dev/null
|
||||||
# node_modules separat kopieren (ohne .env)
|
|
||||||
if [ -d node_modules ]; then
|
if [ -d node_modules ]; then
|
||||||
sudo rsync -av --exclude='.env*' node_modules/ /opt/yourpart/backend/node_modules/ 2>/dev/null || \
|
sudo rsync -av --exclude='.env*' node_modules/ /opt/yourpart/backend/node_modules/ 2>/dev/null || \
|
||||||
sudo cp -r node_modules /opt/yourpart/backend/ 2>/dev/null
|
sudo cp -r node_modules /opt/yourpart/backend/ 2>/dev/null
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# Fallback: Kopiere alles und lösche dann .env-Dateien
|
# Fallback: Kopiere alles außer .env
|
||||||
sudo cp -r * /opt/yourpart/backend/ 2>/dev/null
|
sudo cp -r * /opt/yourpart/backend/ 2>/dev/null
|
||||||
sudo find /opt/yourpart/backend -name '.env*' -type f -delete 2>/dev/null || true
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Stelle sicher, dass .env-Dateien nicht überschrieben wurden
|
# Stelle .env-Dateien wieder her
|
||||||
echo "Stelle sicher, dass .env-Dateien erhalten bleiben..."
|
echo "Stelle .env-Dateien wieder her..."
|
||||||
if [ -f /opt/yourpart/backend/.env ]; then
|
if [ -d "$TEMP_ENV_DIR" ] && [ "$(ls -A $TEMP_ENV_DIR 2>/dev/null)" ]; then
|
||||||
echo "✓ Bestehende .env-Datei wurde beibehalten"
|
sudo cp "$TEMP_ENV_DIR"/.env* /opt/yourpart/backend/ 2>/dev/null || true
|
||||||
|
echo "✓ .env-Dateien wiederhergestellt"
|
||||||
else
|
else
|
||||||
echo "⚠ Keine .env-Datei im Zielverzeichnis gefunden"
|
echo "⚠ Keine .env-Dateien zum Wiederherstellen vorhanden"
|
||||||
# Falls .env im Quellverzeichnis existiert, kopiere sie nur wenn sie im Ziel nicht existiert
|
|
||||||
if [ -f .env ]; then
|
|
||||||
echo "Kopiere .env-Datei (nur wenn nicht vorhanden)..."
|
|
||||||
sudo cp .env /opt/yourpart/backend/
|
|
||||||
sudo chown yourpart:yourpart /opt/yourpart/backend/.env
|
|
||||||
sudo chmod 600 /opt/yourpart/backend/.env
|
|
||||||
fi
|
fi
|
||||||
|
sudo rm -rf "$TEMP_ENV_DIR"
|
||||||
|
|
||||||
|
# Prüfe ob .env vorhanden ist
|
||||||
|
if [ -f /opt/yourpart/backend/.env ]; then
|
||||||
|
echo "✓ .env-Datei ist vorhanden"
|
||||||
|
else
|
||||||
|
echo "⚠ WARNUNG: Keine .env-Datei in /opt/yourpart/backend gefunden!"
|
||||||
|
echo " Bitte manuell erstellen: sudo nano /opt/yourpart/backend/.env"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Berechtigungen setzen
|
# Berechtigungen setzen
|
||||||
|
|||||||
Reference in New Issue
Block a user