I just discovered that a run of pg_dump that gets aborted empties any pre-existing backup file of the same name. It happens whether the run was deliberately canceled by the user or just failed because of a bad password (as in the example below).
~/dba$ pg_dump --host=localhost -U ken --format=c --file=mess_development.bak --no-owner --no-privileges mess_development
Password: <CORRECT PASSWORD ENTERED>
~/dba$ ls -l mess_development.bak
-rw-rw-r-- 1 ken ken 87070 May 26 14:20 mess_development.bak
~/dba$ pg_dump --host=localhost -U ken --format=c --file=mess_development.bak --no-owner --no-privileges mess_development
Password: <BAD PASSWORD ENTERED>
pg_dump: [archiver (db)] connection to database "mess_development" failed: FATAL: password authentication failed for user "ken"
FATAL: password authentication failed for user "ken"
~/dba$ ls -l mess_development.bak
-rw-rw-r-- 1 ken ken 0 May 26 14:21 mess_development.bak
~/dba$
This is troubling because I can imagine a disaster scenario where one loses one's previous backup and, perhaps because of a forgotten password, can't generate a new one. (This scenario hasn't happened to me yet, but seems like it could.) In general, a failed run of a piece of software should leave everything unchanged. So maybe this is a bug that needs to be fixed?
~/dba$ pg_dump --host=localhost -U ken --format=c --file=mess_development.bak --no-owner --no-privileges mess_development
Password: <CORRECT PASSWORD ENTERED>
~/dba$ ls -l mess_development.bak
-rw-rw-r-- 1 ken ken 87070 May 26 14:20 mess_development.bak
~/dba$ pg_dump --host=localhost -U ken --format=c --file=mess_development.bak --no-owner --no-privileges mess_development
Password: <BAD PASSWORD ENTERED>
pg_dump: [archiver (db)] connection to database "mess_development" failed: FATAL: password authentication failed for user "ken"
FATAL: password authentication failed for user "ken"
~/dba$ ls -l mess_development.bak
-rw-rw-r-- 1 ken ken 0 May 26 14:21 mess_development.bak
~/dba$
This is troubling because I can imagine a disaster scenario where one loses one's previous backup and, perhaps because of a forgotten password, can't generate a new one. (This scenario hasn't happened to me yet, but seems like it could.) In general, a failed run of a piece of software should leave everything unchanged. So maybe this is a bug that needs to be fixed?
~ Ken