Backups of database object definitions
Sometimes, it's useful to get a dump of the object definitions that make up a database. This is useful for comparing what's in the database against the definitions in a data- or object-modeling tool. It's also useful to make sure that you can recreate objects in the correct schema, tablespace, and database with the correct ownership and permissions.
How to do it…
There are several important commands to note here.
- The basic command to dump the definitions for every database of your PostgreSQL instance is as follows:
pg_dumpall --schema-only > myscriptdump.sql
This includes all objects, including roles, tablespaces, databases, schemas, tables, indexes, triggers, constraints, views, functions, ownerships, and privileges.
- If you want to dump PostgreSQL role definitions, use the following command:
pg_dumpall --roles-only > myroles.sql
- If you want to dump PostgreSQL tablespace definitions...