簡體   English   中英

在 Windows 中使用 .bat 備份 Postgresql

[英]Backup Postgresql with .bat in windows

我想在 Windows 上使用 .bat 文件創建 postgresql 數據庫備份

我嘗試使用此代碼:

@echo off
for /f "tokens=1-4 delims=/ " %%i in ("%date%") do (
  set dow=%%i
  set month=%%j
  set day=%%k
  set year=%%l
)
set datestr=%month%_%day%_%year%
echo datestr is %datestr%

set BACKUP_FILE=odoo_%datestr%.backup
echo backup file name is %BACKUP_FILE%
SET PGPASSWORD=openpgpwd
echo on
bin\pg_dump -i -h localhost -p 5432 -U openpg -F c -b -v -f %BACKUP_FILE% formation

但我什么也沒收到。

並使用此代碼:

@echo off
SET PG_BIN="C:\Program Files\OpenERP 7.0-20150818\PostgreSQL\bin\pg_dump.exe"
SET PG_HOST=localhost
SET PG_PORT=5432
SET PG_DATABASE=formation
SET PG_USER=openpg
SET PG_PASSWORD=openpgpwd
SET PG_PATCH=D:\odoo
SET FECHAYHORA=%date:/=%-%time:-0,8%
SET FECHAYHORA=%FECHAYHORA::=-%
SET FECHAYHORA=%FECHAYHORA: =0%
SET PG_FILENAME=%PG_PATH%\%PG_DATABASE%-%FECHAYHORA%.sql
%PG_BIN% - i -h %PG_HOST% -p %PG_PORT% -U %PG_USER% %PG_DATABASE% > %PG_FILENAME%

我也有同樣的問題。

我想稍后在 Windows 任務計划程序中使用它。

這個答案由作者提供:

我認為這是所有人的解決方案:

@echo Backup database  %PG_PATH%%PG_FILENAME%
@echo off
SET PG_BIN="C:\Program Files\PostgreSQL\bin\pg_dump.exe"
SET PG_HOST=localhost
SET PG_PORT=5432
SET PG_DATABASE=motor_8
SET PG_USER=openpg
SET PG_PASSWORD=openpgpwd
SET PG_PATH=C:\OEM
SET FECHAYHORA=%date:/=%-%time:-0,8%
SET FECHAYHORA=%FECHAYHORA::=-%
SET FECHAYHORA=%FECHAYHORA: =0%
SET PG_FILENAME=%PG_PATH%\%PG_DATABASE%_%d%_%t%.sql

%PG_BIN% -h %PG_HOST% -p %PG_PORT% -U %PG_USER% %PG_DATABASE% > %PG_FILENAME%

@echo Backup Taken Complete %PG_PATH%%PG_FILENAME%

您的腳本不起作用並不奇怪,因為它們到處都是拼寫錯誤。 我並沒有聲稱我找到了所有這些,但這里列出了我確實發現的那些:

第一個腳本:

  • pg_dump沒有選項-i

第二個腳本:

  • -i有一個虛假空格,但由於該選項不存在並且會導致錯誤,因此應將其刪除。

  • 您設置PG_PATCH並引用PG_PATH

  • libpq無法識別環境變量PG_PASSWORD 去掉下划線。

如果您閱讀了毫無疑問得到的錯誤消息,您就可以弄清楚所有這些。 您還應該始終在此類問題中包含此類錯誤消息。

批處理文件無法獲取數據。 大小顯示0kb

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM