How to implement regular Postgres backups on PythonAnywhere

Your Postgres data on PythonAnywhere is fully protected against hardware failure. However, we do not automatically support rolling back to a point in time. If you want protection from accidental changes, you can set up a scheduled task to regularly back your data up to a file, which you can re-load into Postgres at a later date.

Here's an example of a command that can dump a particular database called "mydb":

pg_dump --host=HOSTNAME --port=PORT --username=super --format=c --file=pgbackup`date +%F-%H%M`.dump mydb

You can find your HOSTNAME and PORT values on the Databases tab. The HOSTNAME will look something like myusername-667.postgres.pythonanywhere-services.com. See this page if you need more information on Postgres setup and configuration.

You'll want to experiment with pg_dump and pg_restore until you have a backup command which you have confidence in -- remember, an untested backup procedure isn't a backup procedure at all!