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 you can recreate objects in exactly the correct schema, tablespace, and database with the correct ownership and permissions.
The basic command to dump the definitions only is to use the following:
pg_dumpall schema-only > myscriptdump.sql
Which includes all objects, including roles, tablespaces, databases, schemas, tables, indexes, triggers, constraints, views, functions, ownership, and privileges.
If you want to dump PostgreSQL role definitions, you can use the following: ...