File size: 1,971 Bytes
22ec144 6f6a8bb e13d45b 6f6a8bb 22ec144 0a4cc64 22ec144 0a4cc64 22ec144 6f6a8bb 22ec144 6f6a8bb 22ec144 6f6a8bb 22ec144 6f6a8bb 22ec144 6f6a8bb |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
#!/bin/bash
# 设置变量
DUMP_FILE="/tmp/backups.dump"
DB_NAME="$DB_POSTGRESDB_DATABASE"
DB_USER="$DB_POSTGRESDB_USER"
DB_PASS="$DB_POSTGRESDB_PASSWORD"
WEBDAV_URL="$WEBDAV_URL"
WEBDAV_USER="$WEBDAV_USER"
WEBDAV_PASSWORD="$WEBDAV_PASSWORD"
DB_IMPORT="$DB_IMPORT"
# 检查是否需要导入数据库
if [ "$DB_IMPORT" = "yes" ]; then
echo "开始导入数据库..."
# 下载 dump 文件
echo "正在下载数据库备份文件..."
if curl -u "$WEBDAV_USER:$WEBDAV_PASSWORD" -f -o "$DUMP_FILE" "${WEBDAV_URL}backup.dump"; then
echo "下载成功."
else
echo "下载失败. 无法从 ${WEBDAV_URL}backup.dump 获取数据库备份文件.用于认证的用户名为$WEBDAV_USER"
echo "跳过数据库导入流程..."
exit 1
fi
# 检查数据库是否存在
echo "检查数据库是否存在..."
if psql -U "$DB_USER" -lqt | cut -d \| -f 1 | grep -qw "$DB_NAME"; then
echo "数据库 ${DB_NAME} 已存在,准备删除现有数据库..."
if dropdb -U "$DB_USER" "$DB_NAME"; then
echo "数据库 ${DB_NAME} 已删除."
else
echo "删除数据库失败,退出."
exit 1
fi
else
echo "数据库 ${DB_NAME} 不存在,将创建新数据库."
fi
# 创建新的数据库
echo "创建新的数据库 ${DB_NAME}..."
if createdb -U "$DB_USER" "$DB_NAME"; then
echo "数据库 ${DB_NAME} 创建成功."
else
echo "创建数据库失败,退出."
exit 1
fi
# 导入数据
echo "正在导入数据到 ${DB_NAME}..."
if pg_restore -U "$DB_USER" -d "$DB_NAME" "$DUMP_FILE"; then
echo "数据导入成功."
else
echo "数据导入失败."
exit 1
fi
# 删除临时文件
echo "清理临时文件..."
rm -f "$DUMP_FILE"
echo "数据库导入过程完成."
else
echo "跳过数据库导入 (DB_IMPORT 不是 'yes')."
fi
|