update
This commit is contained in:
57
AzA march 2026/hetzner_backup_merge_woo_env.sh
Normal file
57
AzA march 2026/hetzner_backup_merge_woo_env.sh
Normal file
@@ -0,0 +1,57 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
TS="$(date +%Y%m%d_%H%M%S)"
|
||||
BK="/root/aza-app/backups/woocommerce_period_sync_env_deploy_${TS}"
|
||||
mkdir -p "${BK}"
|
||||
cp -a /root/aza-app/data/stripe_webhook.sqlite "${BK}/"
|
||||
cp -a /root/aza-app/admin_routes.py "${BK}/"
|
||||
test -f /root/aza-app/aza_wc_period_sync.py && cp -a /root/aza-app/aza_wc_period_sync.py "${BK}/" || true
|
||||
cp -a /root/aza-app/deploy/.env "${BK}/.env.backup"
|
||||
{
|
||||
echo "Rollback (als root auf diesem Server):"
|
||||
echo ""
|
||||
echo "cd /root/aza-app/deploy"
|
||||
echo "docker compose stop aza-api"
|
||||
echo ""
|
||||
echo "cp \"${BK}/stripe_webhook.sqlite\" /root/aza-app/data/stripe_webhook.sqlite"
|
||||
echo "cp \"${BK}/admin_routes.py\" /root/aza-app/admin_routes.py"
|
||||
if test -f "${BK}/aza_wc_period_sync.py"; then
|
||||
echo "cp \"${BK}/aza_wc_period_sync.py\" /root/aza-app/aza_wc_period_sync.py"
|
||||
fi
|
||||
echo "cp \"${BK}/.env.backup\" /root/aza-app/deploy/.env"
|
||||
echo ""
|
||||
echo "docker compose build --no-cache aza-api"
|
||||
echo "docker compose up -d --force-recreate aza-api"
|
||||
} > "${BK}/README_RESTORE.txt"
|
||||
python3 << 'PY'
|
||||
from pathlib import Path
|
||||
patch_path = Path("/tmp/aza_woo_patch.env")
|
||||
text = patch_path.read_text(encoding="utf-8")
|
||||
vars_to_set = {}
|
||||
for line in text.splitlines():
|
||||
line = line.strip()
|
||||
if not line or line.startswith("#") or "=" not in line:
|
||||
continue
|
||||
k, v = line.split("=", 1)
|
||||
vars_to_set[k.strip()] = v.strip()
|
||||
env_path = Path("/root/aza-app/deploy/.env")
|
||||
lines = env_path.read_text(encoding="utf-8").splitlines() if env_path.exists() else []
|
||||
keys = set(vars_to_set)
|
||||
new_lines = []
|
||||
seen = set()
|
||||
for line in lines:
|
||||
t = line.strip()
|
||||
if t and not t.startswith("#") and "=" in t:
|
||||
k = t.split("=", 1)[0].strip()
|
||||
if k in keys:
|
||||
new_lines.append("%s=%s" % (k, vars_to_set[k]))
|
||||
seen.add(k)
|
||||
continue
|
||||
new_lines.append(line)
|
||||
for k in sorted(keys - seen):
|
||||
new_lines.append("%s=%s" % (k, vars_to_set[k]))
|
||||
env_path.write_text("\n".join(new_lines) + "\n", encoding="utf-8")
|
||||
patch_path.unlink()
|
||||
PY
|
||||
chmod 600 /root/aza-app/deploy/.env
|
||||
echo "BACKUP_PATH=${BK}"
|
||||
Reference in New Issue
Block a user