title: pg_dump vs pg_dumpall? which one to use to database backups?
body: <p>I tried <code>pg_dump</code> and then on a separate machine I tried to import the sql and populate the database, I see</p>
  
  <pre><code>CREATE TABLE
  ERROR:  role "prod" does not exist
  CREATE TABLE
  ERROR:  role "prod" does not exist
  CREATE TABLE
  ERROR:  role "prod" does not exist
  CREATE TABLE
  ERROR:  role "prod" does not exist
  ALTER TABLE
  ALTER TABLE
  ALTER TABLE
  ALTER TABLE
  ALTER TABLE
  ALTER TABLE
  ALTER TABLE
  WARNING:  no privileges could be revoked for "public"
  REVOKE
  ERROR:  role "postgres" does not exist
  ERROR:  role "postgres" does not exist
  WARNING:  no privileges were granted for "public"
  GRANT
  </code></pre>
  
  <p>which means my <code>user</code> and <code>roles</code> and <code>grant</code> information is not in <code>pg_dump</code></p>
  
  <p>On the other hand we have <code>pg_dumpall</code>, I read <a href="http://www.postgresql.org/message-id/h49gi3$4ko$1@reversiblemaps.ath.cx">conversation</a>, and this does not lead me anywhere?</p>
  
  <p><strong>Question</strong><br>
  - Which one should I be using for database backups? <code>pg_dump</code> or <code>pg_dumpall</code>?<br>
  - the requirement is that I can take the backup and should be able to import to any machine and it should work just fine.</p>