Spaces:
Running
Running
# 设置变量 | |
DUMP_FILE="/tmp/backups.dump" | |
DB_NAME="$DB_POSTGRESDB_DATABASE" | |
DB_USER="$DB_POSTGRESDB_USER" | |
DB_PASS="$DB_POSTGRESDB_PASSWORD" | |
WEBDAV_URL="$WEBDAV_URL" | |
DB_IMPORT="$DB_IMPORT" | |
# 检查是否需要导入数据库 | |
if [ "$DB_IMPORT" = "yes" ]; then | |
echo "开始导入数据库..." | |
# 下载 dump 文件 | |
echo "正在下载数据库备份文件..." | |
if curl -f -o "$DUMP_FILE" "${WEBDAV_URL}/backup.dump"; then | |
echo "下载成功." | |
else | |
echo "下载失败. 无法从 ${WEBDAV_URL} 获取数据库备份文件." | |
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 | |