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