steel
steel

Reputation: 12550

Heroku transfer data between remote databases, clear syntax example

I have a staging app full of data that I want to use to populate my currently empty production database. Currently I am trying to use pg:transfer. What is the correct syntax to use?

Addresses:

Staging app: afternoon-oasis-XXXX

Production app: warm-springs-XXXX, or postgres://long-database-url.compute-1.amazonaws.com:XXX/XXXXXXXX

The documentation states:

#documentation
$ heroku pg:transfer --to `heroku config:get DATABASE_URL -a app-staging` --confirm someapp

I have tried

$ heroku pg:transfer -t postgres://long-database-url.compute-1.amazonaws.com:XXX/XXXXXXXX -f JADE

This should be pulling from JADE, but the confirm message that appears to indicate that JADE, my afternoon-oasis app, my intended source, is going to be altered:

 WARNING: Destructive Action
 !    This command will affect the app: afternoon-oasis-XXXX
 !    To proceed, type "afternoon-oasis-XXXX" or re-run this command with --confirm afternoon-oasis-XXXX

Why would Heroku be altering the source database? Or am I getting the syntax wrong?

Thanks in advance.

Upvotes: 0

Views: 95

Answers (1)

Matthew Leonard
Matthew Leonard

Reputation: 2005

Second Update

You need the pgbackups addon for this but it is free. Sorry forgot that.

This addon will backup your postgres database every so often which is great if you ever need to recover data.

To add it just run heroku addons:add pgbackups:auto-week -a warm-springs-XXXX

Also add pgbackups to staging app

heroku addons:add pgbackups:auto-week -a afternoon-oasis-XXXX

Then run

heroku pgbackups:capture -a afternoon-oasis-XXXX to backups the latest

Finally you can run

heroku pgbackups:restore DATABASE_URL `heroku pgbackups:url -a afternoon-oasis-XXXX` -a warm-springs-XXXX

This command first gets the url of your staging app db backup and the pulls it to your production.

Original

Instead of using pg:transfer try doing something like this:

heroku pgbackups:restore DATABASE_URL 'INPUT YOUR STAGING DATABASE URL' -a warm-springs-XXXX

Let me know if you've got any questions. Then you can just type the confirm message with prompted or add the --confirm warm-springs-XXXX to the end of the command above.

Upvotes: 1

Related Questions