2017-01-21 104 views
0

我想創建一個PostgreSQL數據庫的備份與Windows備份PostgreSQL用於在Windows

.bat文件我使用此代碼試圖蝙蝠:

@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任務計劃程序中使用它。

+1

到底是什麼問題了嗎? 「*但我沒收到任何東西*」不是很好的問題描述 –

+2

PG_PAT ** C ** H和PG_PATH看起來很可疑... – joanolo

+0

認爲你 問題是代碼不起作用 不創建備份 – developper

回答

0

此答案由作者提供:

我想這是所有解決方案:

@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% 
2

您的腳本無法正常工作並不奇怪,因爲它們都包含錯字。我並不認爲我找到了他們,但這裏是那些我做現貨的列表:

第一個腳本:

  • 沒有爲pg_dump別無選擇-i

第二個腳本:

  • 有一個虛假的空間-i,但由於該選項不存在,會導致一個錯誤,它應該被刪除。

  • 您設置了PG_PATCH和參考PG_PATH

  • 環境變量PG_PASSWORD未被libpq識別。刪除下劃線。

如果您讀取了您無疑獲得的錯誤消息,則可以計算出所有這些。你也應該總是在這樣的問題中包含這樣的錯誤信息。

+0

謝謝你的答案是什麼,你可以複製正確的代碼 – developper

+0

嗨 我解決這個問題,我糾正一個新的解決方案 問題想一想 – developper

+0

如果你寫了一個答案而不是編輯問題,那會更好。這樣每個人都可以很容易地理解它是一個答案。 –