2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

バッチファイルでPostgreSQLデータベースをバックアップしたい話

Last updated at Posted at 2020-01-31

環境:Windows10 Pro 1909, PostgreSQL10.0

  • やりたいこと

 実行するだけでdumpファイルをとりたい。

 何度実行しても問題がないようにしたい。

  • 実際のバッチファイル

※ DB接続情報は実際の環境に合わせて書き換える前提

REM //戻り値
SET C_OKRET=0
SET C_NGRET=1

REM //DB接続情報
SET PGHOST=localhost
SET PGPORT=5432
SET PGDATABASE=dbname
SET PGUSER=dbuser

REM //バックアップディレクトリ設定(カレントディレクトリ)
SET BACKUP_DIR=%~dp0

REM //日付情報(バックアップディレクトリに付与する年月日時分秒を取得)
SET TMPTIME1=%TIME: =0%
SET TMPTIME2=%TMPTIME1:.=%
SET NOWTIME=%TMPTIME2::=%
SET NOW=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%_%NOWTIME:~0,6%

PUSHD %~DP0

REM //タイムスタンプのあるフォルダの作成
MKDIR %BACKUP_DIR%\%NOW%

REM //バックアップ実行
pg_dump -h %PGHOST% -U postgres -c %PGDATABASE% > %BACKUP_DIR%\%NOW%\%PGDATABASE%.dump


REM //エラー発生時はカレントディレクトリにログを出力
IF %errorlevel% neq 0 (

  ECHO %date% %time:~0,8% 実行に失敗しました  ErrorCode=%errorlevel%^
  FileName%SQLFILE%>> %~DP0\psql_log.txt
  POPD
  EXIT /b %C_NGRET%

) ELSE (

  POPD
  EXIT /b %C_OKRET%

)

バッチファイルの終了を「EXIT /b ~」とすることで、呼び出し元へステータスを返せるように指定。

なお、返り値は数値であることに注意。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?