2012-01-10 11 views
6

Sto provando a trasferire i dati dal mio DB di produzione al mio DB di staging senza esito positivo.Come trasferire i dati dal mio DB di produzione al mio DB di gestione temporanea in heroku?

Sto seguendo la documentazione del Heroku su di esso: http://devcenter.heroku.com/articles/pgbackups#transfers

Questi sono i comandi che ho correre ...

$ heroku addons:add pgbackups --remote staging 
$ heroku addons:add pgbackups --remote production 
$ heroku pgbackups:capture --remote production 
$ heroku pgbackups:restore DATABASE `heroku pgbackups:url --remote production` --remote staging 

E questo è il messaggio che ottengo ...

Usage: heroku pgbackups:restore [<DATABASE> [BACKUP_ID|BACKUP_URL]] 

restore a backup to a database 

if no DATABASE is specified, defaults to DATABASE_URL and latest backup 
if DATABASE is specified, but no BACKUP_ID, defaults to latest backup 

Sembra che stia scrivendo qualcosa di sbagliato, ma non riesco a capirlo.

Ho anche provato lo stesso comando utilizzando il nome delle applicazioni al posto del telecomando ...

$ heroku pgbackups:restore DATABASE `heroku pgbackups:url --app myapp` --app myapp-staging 

ma ottengo lo stesso messaggio senza effettivo trasferimento in corso.

Qualsiasi aiuto è molto apprezzato.

risposta

11

Non penso che tu abbia catturato correttamente. Usare sempre --app invece di --remote

$ heroku pgbackups:capture --app myapp 
$ heroku pgbackups:restore DATABASE `heroku pgbackups:url --app myapp` --app myapp-staging 
+0

Grazie Neil. L'ho appena provato e sto diventando un! Errore risorse non trovato. Ho anche eseguito 'heroku pgbackups --app myapp' e mi mostra correttamente i miei backup in modo che la risorsa sia lì, semplicemente non la carica. – rebagliatte

+0

'risorsa non trovata' viene in genere restituita quando si utilizza un nome di app errato - questi devono essere elencati nella pagina myapps sul sito heroku. Il comando di Neils è esattamente corretto come l'ho usato io stesso. –

+0

Grazie John, giuro che sto usando i nomi giusti però. Ho appena controllato due volte che eseguo 'heroku apps' – rebagliatte

4

Non sono sicuro se di Heroku cambiati dal momento che questi sono state inviate lo scorso gennaio, ma quando corro

heroku pgbackups:restore DATABASE `heroku pgbackups:url --app myapp` --app myapp-staging 

ho continuato a ottenere un errore che ha appena detto

"! Backup not found"

Anche se eseguo autonomamente il comando per ottenere l'URL:

heroku pgbackups:url --app myapp 

e poi provato l'URL nel browser, quell'URL era corretto.

Così, invece ho solo cercato di inviare il copiato URL/incollato al comando, invece, come:

heroku pgbackups:restore DATABASE "http://urlgoeshere" --app myapp-staging 

ho dovuto usare le doppie virgolette attorno all'URL, senza virgolette singole. Altrimenti ho ricevuto questo errore:

The filename, directory name, or volume label syntax is incorrect. 'Expires' is not recognized as an internal or external command, operable program or batch file. 'Signature' is not recognized as an internal or external command, operable program or batch file.

+0

Stavo avendo lo stesso problema, e incollando l'URL come dice Gayle ha funzionato per me. –

+0

Qualcuno ha commentato sul nostro Dev Center che si sono imbattuti nella stessa cosa, ma non sono stato in grado di replicare questo problema. Puoi dirmi quale errore stavi vedendo (se c'è qualcosa di più del "! Backup non trovato" sopra), se vedi ancora il problema, cosa succede quando esegui 'set -x' in precedenza (esegui' set + x' in seguito per disattivare di nuovo l'eco) e quale shell e sistema operativo si sta utilizzando (sono con Heroku Postgres)? –

Problemi correlati