#!/bin/bash # Dumps the Odoo database and filestore to backups//. # Usage: ./scripts/backup.sh set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" cd "$SCRIPT_DIR" set -a; [ -f .env ] && source .env; set +a DB_NAME="${ODOO_DB_NAME:-school}" POSTGRES_USER="${POSTGRES_USER:-odoo}" STAMP="$(date +%Y%m%d-%H%M%S)" OUT_DIR="backups/${STAMP}" mkdir -p "$OUT_DIR" echo "[->] Dumping database '${DB_NAME}'..." docker compose exec -T db pg_dump -U "$POSTGRES_USER" -Fc "$DB_NAME" > "${OUT_DIR}/${DB_NAME}.dump" echo "[->] Archiving filestore..." docker compose exec -T odoo tar -czf - -C "/var/lib/odoo/filestore" "${DB_NAME}" 2>/dev/null \ > "${OUT_DIR}/${DB_NAME}-filestore.tar.gz" || echo "[!] No filestore found for ${DB_NAME} yet — skipping." echo "[OK] Backup written to ${OUT_DIR}/"