28 lines
667 B
Bash
Executable File
28 lines
667 B
Bash
Executable File
#!/usr/bin/env sh
|
|
set -eu
|
|
|
|
PROJECT_ROOT=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
|
|
cd "$PROJECT_ROOT"
|
|
|
|
if [ ! -f ".env" ] && [ -f ".env.example" ]; then
|
|
echo "未找到 .env,先从 .env.example 复制一份:"
|
|
echo " cp .env.example .env"
|
|
exit 1
|
|
fi
|
|
|
|
DATA_DIR_VALUE=$(grep '^DATA_DIR=' .env 2>/dev/null | tail -n 1 | cut -d '=' -f 2- || true)
|
|
DATA_DIR=${DATA_DIR_VALUE:-./data}
|
|
DB_PATH="$DATA_DIR/app.db"
|
|
|
|
if [ ! -f "$DB_PATH" ]; then
|
|
echo "未找到数据库文件:$DB_PATH"
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p backups
|
|
TIMESTAMP=$(date +"%Y%m%d-%H%M%S")
|
|
DESTINATION="backups/app-$TIMESTAMP.db"
|
|
|
|
cp "$DB_PATH" "$DESTINATION"
|
|
echo "备份已创建:$DESTINATION"
|