在 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 任务计划程序中使用它。
您的脚本无法运行不足为奇,因为它们到处都是拼写错误。我并不声称我找到了所有这些,但这是我确实发现的列表:
第一个脚本:
pg_dump
没有选项-i
。
第二个脚本:
-i
中有一个伪造的space,但由于该选项不存在且会导致错误,因此应将其删除。
您设置 PG_PATCH
并引用 PG_PATH
。
libpq
无法识别环境变量 PG_PASSWORD
。删除下划线。
如果您阅读毫无疑问收到的错误消息,您就可以弄清楚这一切。您还应该始终在这样的问题中包含此类错误消息。
本回答由作者提供:
I think this is the solution for all:
@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%
我想在 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 任务计划程序中使用它。
您的脚本无法运行不足为奇,因为它们到处都是拼写错误。我并不声称我找到了所有这些,但这是我确实发现的列表:
第一个脚本:
pg_dump
没有选项-i
。
第二个脚本:
-i
中有一个伪造的space,但由于该选项不存在且会导致错误,因此应将其删除。您设置
PG_PATCH
并引用PG_PATH
。libpq
无法识别环境变量PG_PASSWORD
。删除下划线。
如果您阅读毫无疑问收到的错误消息,您就可以弄清楚这一切。您还应该始终在这样的问题中包含此类错误消息。
本回答由作者提供:
I think this is the solution for all:
@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%