7

I know how to restore a pg dump into a RDS database if that dump is in my machine, but how could I do it when the dump is available at a remote location, say Amazon S3?

What I want to do is something like this:

pg_restore -h somedomain.us-east-1.rds.amazonaws.com -p 5432 -d databasename -U username https://s3.amazonaws.com/database.dump

But of course this results in

pg_restore: [archiver] could not open input file "https://s3.amazonaws.com/database.dump"

Thanks for your help!

sauronnikko
  • 4,665
  • 5
  • 31
  • 47

1 Answers1

10

If a filename is not specified, pg_restore will take data from standard input (doc). So, this would work:

wget -O - 'https://s3.amazonaws.com/database.dump' | pg_restore -h somedomain.us-east-1.rds.amazonaws.com -p 5432 -d databasename -U username

Note that you can create an RDS snapshot, then create a new DB instance from that snapshot (doc). In your particular situation, I don't know if that would work better than backing up to S3, but it's worth mentioning.

Travis
  • 1,998
  • 1
  • 21
  • 36