Refactor deployment script to include pre-git backup of production data and streamline restoration process. Remove outdated backup methods and enhance error handling for data restoration from backup directories.
This commit is contained in:
@@ -6,8 +6,20 @@
|
|||||||
echo "=== Harheimer TC Deployment ==="
|
echo "=== Harheimer TC Deployment ==="
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
# 1. Handle local changes and Git Pull
|
# 1. BACKUP: Laufende Produktivdaten VOR allen Git-Operationen sichern
|
||||||
echo "1. Handling local changes and pulling latest from git..."
|
echo "1. Backing up current production data (pre-git)..."
|
||||||
|
|
||||||
|
# Fresh backup dir
|
||||||
|
rm -rf .backup
|
||||||
|
mkdir -p .backup
|
||||||
|
|
||||||
|
# Backup server data (JSON) und CSVs immer vom Dateisystem, nicht aus 'stash'
|
||||||
|
cp -a server/data .backup/data_backup 2>/dev/null || echo " No server/data to backup"
|
||||||
|
mkdir -p .backup/public_data
|
||||||
|
cp -a public/data/*.csv .backup/public_data/ 2>/dev/null || echo " No public CSVs to backup"
|
||||||
|
|
||||||
|
# 2. Handle local changes and Git Pull
|
||||||
|
echo "2. Handling local changes and pulling latest from git..."
|
||||||
|
|
||||||
# Check if there are merge conflicts first
|
# Check if there are merge conflicts first
|
||||||
if [ -n "$(git status --porcelain | grep '^UU\|^AA\|^DD')" ]; then
|
if [ -n "$(git status --porcelain | grep '^UU\|^AA\|^DD')" ]; then
|
||||||
@@ -27,26 +39,8 @@ if [ $? -ne 0 ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 2. Backup Production Data (from stash)
|
# Reset any accidental changes from stash restore (should be none now)
|
||||||
echo ""
|
git reset --hard HEAD >/dev/null 2>&1
|
||||||
echo "2. Backing up production data from stash..."
|
|
||||||
|
|
||||||
# Create backup directory
|
|
||||||
mkdir -p .backup
|
|
||||||
|
|
||||||
# Try to restore stashed data temporarily to backup it
|
|
||||||
echo " Restoring stashed data for backup..."
|
|
||||||
git stash show -p | git apply --index 2>/dev/null || echo " No stashed data to restore"
|
|
||||||
|
|
||||||
# Backup production data
|
|
||||||
cp -r server/data .backup/data_backup 2>/dev/null || echo " No server/data to backup"
|
|
||||||
cp public/data/termine.csv .backup/termine.csv 2>/dev/null || echo " No termine.csv to backup"
|
|
||||||
cp public/data/mannschaften.csv .backup/mannschaften.csv 2>/dev/null || echo " No mannschaften.csv to backup"
|
|
||||||
cp public/data/spielsysteme.csv .backup/spielsysteme.csv 2>/dev/null || echo " No spielsysteme.csv to backup"
|
|
||||||
cp public/data/vereinsmeisterschaften.csv .backup/vereinsmeisterschaften.csv 2>/dev/null || echo " No vereinsmeisterschaften.csv to backup"
|
|
||||||
|
|
||||||
# Reset any changes from stash restore
|
|
||||||
git reset --hard HEAD
|
|
||||||
|
|
||||||
# 3. Install dependencies
|
# 3. Install dependencies
|
||||||
echo ""
|
echo ""
|
||||||
@@ -71,14 +65,25 @@ if [ $? -ne 0 ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 6. Restore Production Data
|
# 6. Restore Production Data (überschreibe Repo-Defaults mit Backup)
|
||||||
echo ""
|
echo ""
|
||||||
echo "6. Restoring production data..."
|
echo "6. Restoring production data..."
|
||||||
cp -r .backup/data_backup/* server/data/ 2>/dev/null || echo "No data to restore"
|
|
||||||
cp .backup/termine.csv public/data/termine.csv 2>/dev/null || echo "No termine.csv to restore"
|
# Stelle server/data vollständig wieder her (inkl. config.json, users.json, news.json, sessions.json, members.json, membership-applications)
|
||||||
cp .backup/mannschaften.csv public/data/mannschaften.csv 2>/dev/null || echo "No mannschaften.csv to restore"
|
if [ -d .backup/data_backup ]; then
|
||||||
cp .backup/spielsysteme.csv public/data/spielsysteme.csv 2>/dev/null || echo "No spielsysteme.csv to restore"
|
mkdir -p server/data
|
||||||
cp .backup/vereinsmeisterschaften.csv public/data/vereinsmeisterschaften.csv 2>/dev/null || echo "No vereinsmeisterschaften.csv to restore"
|
cp -a .backup/data_backup/. server/data/
|
||||||
|
else
|
||||||
|
echo "No server/data to restore"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Stelle alle CSVs wieder her
|
||||||
|
if ls .backup/public_data/*.csv >/dev/null 2>&1; then
|
||||||
|
mkdir -p public/data
|
||||||
|
cp -a .backup/public_data/*.csv public/data/
|
||||||
|
else
|
||||||
|
echo "No public CSVs to restore"
|
||||||
|
fi
|
||||||
|
|
||||||
# 7. Cleanup backup and stash
|
# 7. Cleanup backup and stash
|
||||||
echo ""
|
echo ""
|
||||||
|
|||||||
Reference in New Issue
Block a user