PostgreSQLでは、pg_dumpコマンドでデータ定義や登録データなどをダンプして、バックアップファイルを作成することができます。
データベースのダンプ
データベース単位のpg_dumpコマンドは以下のようになります。オプション"-U"でダンプ権限があるユーザーを指定します。
pg_dump -U [ユーザー] -d [データベース] > [ファイル名]データベースtestdbの全テーブル、データをダンプしてファイルtestdb.dumpに保存する場合、以下のようにします。
$ pg_dump -U postgres -d testdb > testdb.dump
-
データ定義のみダンプ
データはダンプせずに、テーブル、シーケンス、インデックスなどのデータ定義だけをダンプしたい場合は、 オプションの"-s"、または"--schema-only"を指定します。
$ pg_dump -U postgres -d testdb -s > testdb.schema.dump
データのみダンプ
データのみダンプしたい場合は、オプションの"-a"、または"--data-only"を指定します。
$ pg_dump -U postgres -d testdb -a > testdb.data.dump
指定テーブルのみダンプ
指定テーブルのみダンプしたい場合は、オプションの"-t"、または"--table"を使いします。
$ pg_dump -d [データベース] -t [テーブル]複数テーブルを指定する場合、"-t"オプションを複数指定します。
$ pg_dump -d [データベース] -t [テーブル1] -t [テーブル2] -t [テーブル3] ....テーブルusers, groups, shopsの3個だけをダンプしたい場合は以下のようにします。
$ pg_dump -U postgres -d testdb -t users -t groups -t shops > tables.dump
指定テーブルのデータのみ
テストやデバッグ用に指定テーブルのデータのみをダンプしたい場合、データのみオプション"-a"と合わせて以下のように指定します。
$ pg_dump -U postgres -d testdb -a -t users -t groups > tables.data.dump上記ではテーブルusersとgroupsのデータのみをファイルに出力します。
指定テーブルのデータ定義のみ
テストやデバッグ用に指定テーブルのデータ定義のみをダンプしたい場合、定義のみオプション"-s"と合わせて以下のように指定します。
$ pg_dump -U postgres -d testdb -s -t users -t groups > tables.schema.dump上記ではテーブルusersとgroupsのデータ定義のみをファイルに出力します。