Restoring from Backups

1. Restoring Plain SQL Dump

psql -d shop -f shop.sql
psql -d shop -v ON_ERROR_STOP=1 -f shop.sql

2. Restoring Custom Format

pg_restore -d shop shop.dump

3. Restoring Directory Format

pg_restore -d shop /backups/shop.d

4. Using Parallel Restore

pg_restore -d shop -j 8 shop.dump

5. Restoring Specific Tables

pg_restore -d shop -t orders -t customers shop.dump

6. Restoring Specific Schemas

pg_restore -d shop -n app shop.dump

7. Listing Contents

pg_restore -l shop.dump > toc.list

8. Using Restore List

vi toc.list           # delete or reorder lines (prefix with ;)
pg_restore -L toc.list -d shop shop.dump

9. Restoring Schema Only

pg_restore --schema-only -d shop shop.dump

10. Restoring Data Only

pg_restore --data-only --disable-triggers -d shop shop.dump

11. Cleaning Before Restore

pg_restore -c --if-exists -d shop shop.dump   # DROP objects then restore

12. Creating Database Before Restore

pg_restore -C -d postgres shop.dump            # CREATE DATABASE then restore

13. Handling Errors

FlagEffect
--exit-on-errorStop on first error
--single-transactionAll-or-nothing
--no-owner / --no-privilegesSkip ALTER OWNER / GRANT
--disable-triggersSkip triggers during data load