Hanno attraversato diverse soluzioni disponibili su stackoverflow
e anche su diversi forum. Ma nessuno affronta il problema preciso.
Come da documentazione: https://devcenter.heroku.com/articles/heroku-postgres-import-export
Ho il file di dump
creato dal mio database locale, con questo comando:
pg_dump -Fc --no-acl --no-owner -h localhost -U postgres dss_iaya>dss_iaya_db_dump1.dump
Quindi, come da documentazione, caricato su un server con URL di accesso pubblico: https://firebasestorage.googleapis.com/v0/b/iaya-664f3.appspot.com/o/dss_iaya_db_dump1.dump?alt=media&token=06167d04-1e98- 4e4b-b0e0-9d83a86dd167
Ora quando provo a ripristinare su Heroku
come da sua documentazione syntax heroku pg:backups:restore [BACKUP] [DATABASE] --app APP
usando il seguente comando, restituisce un messaggio di errore durante il ripristino.
heroku pg:backups:restore --app heroku-postgres-*** 'https://firebasestorage.***/dss_iaya_db_dump1.dump?alt=media&token=***' 'postgres://quesu***:I***@ec2-54-***.eu-west-1.compute.amazonaws.com:5432/d3n***k0'
Ho usato *** solo per scopi di sicurezza, in quanto non posso menzionare le credenziali complete. Ma credo che si possa capire l’intera syntax.
Quando ripristino lo stesso file .dump
su un database locale appena creato, funziona senza problemi e crea / ripristina l’intero database con tabelle e dati.
Nei registri viene visualizzata la dimensione del dump: 0 byte . Inoltre vedi l’ abortire e 403 , quindi se controlli il tuo file: https://llfirebasestorage.googleapis.com/vo/b/iaya-664f3.appspot.com/0/dss_iaya_db_dump1.dump?a1t=media
ottieni:
404. That's an error. The requested URL /vo/b/iaya-664f3.appspot.com/0/dss_iaya_db_dump1.dump was not found on
questo server. È tutto quello che sappiamo.
Ho appena trovato la soluzione, in realtà due cose erano sbagliate nel mio caso.
Uno, il file .dump
caricato non era ben leggibile / utilizzabile dal heroku
.
Due, l’URL completo di heroku postgresql DB
non doveva essere fornito.
Quindi, il modo corretto per me è che il file caricato dovrebbe essere accessibile senza alcun token e anche senza alcun percorso virtuale / indiretto, ecc. L’URL del file dovrebbe puntare direttamente al file . Nel mio problema in discussione stavo usando
firebase
per ospitare temporaneamente il mio file DB per eseguire l’operazioneheroku
. Efirebase
non stava fornendo l’URL diretto al file fisico caricato .
heroku pg:backups:restore --app heroku-postgres-f3*** 'https://www.h***.com/dss_iaya_db_dump2.dump' DATABASE_URL
Dopo aver digitato questo comando, mi è stato chiesto di ridigitare il nome dell’app heroku
solo per confermare l’operazione. Una volta fatto, tutto ha funzionato come un fascino.