2 次代码提交 3e4830907a ... 378ac3b48e

作者 SHA1 备注 提交日期
  weijianghai 378ac3b48e 请求日志增加系统分类字段 2 月之前
  weijianghai 3e4830907a 请求日志增加系统分类字段 2 月之前
共有 2 个文件被更改,包括 30 次插入0 次删除
  1. 27 0
      scripts/restore-financialdb.ps1
  2. 3 0
      scripts/restore-financialdb.sh

+ 27 - 0
scripts/restore-financialdb.ps1

@@ -0,0 +1,27 @@
+param (
+    [string]$backup_dir = $(throw "请提供备份目录作为第一个参数")
+)
+
+# 设置环境变量
+$env:PGPASSWORD = 'postgres'
+
+$host_ = '127.0.0.1'
+$port = '5432'
+$username = 'postgres'
+$dbname = 'financialdb'
+$jobs = '16'
+
+# 检查数据库是否存在
+$checkDbExists = psql -U $username -tA -c "SELECT 1 FROM pg_database WHERE datname='$dbname'" | Out-String
+
+if ($checkDbExists.Trim() -ne "1") {
+    Write-Output "数据库 $dbname 不存在,正在创建..."
+    createdb -U $username $dbname
+} else {
+    Write-Output "数据库 $dbname 已存在。"
+}
+
+# 执行 pg_restore
+Write-Output "开始从 $backup_dir 恢复数据库 $dbname..."
+
+pg_restore -O -c -v -h $host_ -p $port -U $username -d $dbname -Fd -j $jobs $backup_dir

+ 3 - 0
scripts/restore-financialdb.sh

@@ -7,4 +7,7 @@ port='5432'
 username='finance'
 dbname='financialdb'
 jobs='16'
+if [ "$(psql -U ${username} -tAc "SELECT 1 FROM pg_database WHERE datname='${dbname}'")" != "1" ]; then
+    createdb -U ${username} ${dbname}
+fi
 pg_restore -O -c -v -h "${host}" -p "${port}" -U "${username}" -d "${dbname}" -Fd -j "${jobs}" "${backup_dir}"