restore-db.sh 630 B

1234567891011121314151617181920212223242526
  1. #!/usr/bin/env bash
  2. set -euo pipefail
  3. ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
  4. DB_PATH="${DB_PATH:-$ROOT_DIR/data/okr-performance.db}"
  5. if [[ $# -ne 1 ]]; then
  6. echo "用法: $0 /path/to/okr-performance-backup.db" >&2
  7. exit 1
  8. fi
  9. BACKUP_PATH="$1"
  10. if [[ ! -f "$BACKUP_PATH" ]]; then
  11. echo "备份文件不存在: $BACKUP_PATH" >&2
  12. exit 1
  13. fi
  14. mkdir -p "$(dirname "$DB_PATH")"
  15. if [[ -f "$DB_PATH" ]]; then
  16. SAFETY_COPY="$DB_PATH.before-restore-$(date +%Y%m%d-%H%M%S)"
  17. cp "$DB_PATH" "$SAFETY_COPY"
  18. echo "已创建恢复前安全备份: $SAFETY_COPY"
  19. fi
  20. cp "$BACKUP_PATH" "$DB_PATH"
  21. echo "已恢复数据库: $DB_PATH"