PostgreSQL データベースの pg_dump と pg_restore によるバックアップとリストア

すぐ忘れるのでメモ。

pg_dumpとpg_restoreを用いたバックアップとリストア #PostgreSQL - Qiita

バックアップ

pg_dump -Fc -d my_database > backup.dump

リストア(DB 未作成時)

DBとユーザーは先に作る。 pg_restore のオプション指定は無し。

CREATE ROLE your_user WITH LOGIN PASSWORD 'xxxxxx';
CREATE DATABASE your_database OWNER your_user;

pg_restore -d your_database backup.dump

リストア(DB 作成済み)

pg_restore のオプションで -clean を指定する(既存データを削除する)。

pg_restore --clean -d your_database backup.dump

普段は DataGrip を使っており、それぞれ、

  • データベースを選択して右クリック → pg_dump でエクスポート
  • リストア先データベースを選択して右クリック → リストア → pg_restore タブ

で実施している。