2012-06-21 14 views
6

ho ottenuto i seguenti errori utilizzando ruby ​​1.9.2-p320 con Heroku di Taps-db usando '' comandi come ad esempio:Heroku db: tirare Rubinetti di carico Errore: Nessun file da caricare - pg

heroku db:pull --app my-app 

che produce errori come:

Taps Load Error: no such file to load -- sqlite3 

oppure

Taps Load Error: no such file to load -- pg 

(E sì, btw, ho tutte le gemme corrette, inclusi sia Postgres - corsa ning fine localmente - e sqlite3, oltre ad aver disinstallato, re-installato e aggiornato i rubinetti & e includendoli e non includendoli nel mio Gemfile. Sono in esecuzione Rails 3.2.6)

Sebbene sia presente un errore noto che provoca un errore "spostamento di fuso orario": heroku db:push not working, using taps gem, non ho visto post SO che risolvono direttamente questo problema.

risposta

2

La soluzione che ho trovato, utilizzando i suggerimenti da https://github.com/ricardochimal/taps/issues/92 qui è dettagliata: https://github.com/ricardochimal/taps/issues/92#issuecomment-6486535

Il corto di esso, è che Ruby 1.9.2-p320 sembra essere stato il problema, per quanto posso dire. Il downgrade a Ruby 1.9.2-p290 lo ha risolto per me. Questo potrebbe essere in relazione con il rubino 1.9.3 dei problemi discussi al link precedente, non è sicuro.

Se si è ancora in sospeso con i rubinetti, vedere this comment at GH, poiché il poster doshea sembra averlo esaminato in modo ancora più accurato di quanto io o di me non abbia.

Ripeterò anche qui che se si non è necessario Rubinetti, quindi heroku-pgtransfer è tuo amico. Vedere Ryan's answer to my question here e his excellent blog post sull'utilizzo dello strumento più recente.

+0

FYI, La gemma rubinetti non funziona per me con rubino 1.9.2-p290. Ottengo l'errore 'Taps Load Error: nessun file da caricare - taps/operation'. – Clay

+1

I rubinetti hanno iniziato a funzionare per me utilizzando le stesse versioni di Ruby su Heroku e localmente. [Vedi il mio commento su GH] (https://github.com/ricardochimal/taps/issues/92#issuecomment-6486535): ti suggerisco di provare: $ 'heroku run 'ruby -v'' e vedi quale versione Heroku è in esecuzione e quindi aggiornare quello locale per abbinare. Nessuna garanzia, ma sembra essere quello che ha fatto per me (ancora una volta, supponendo, forse è colpa [l'argomento di Ruby marshalling] (http://stackoverflow.com/questions/8151571/error-when-pushing-data-to- heroku-time-zone-displacement-out-of-range)?). Vedi anche il commento di jfeust a GH sul cinturone di Heroku. – likethesky

+0

Do ~/.rvm/bin/ruby-1.9.2-p320/usr/bin/heroku db: push – Ted

15

I collegamenti non sono più lo strumento consigliato da utilizzare durante la migrazione dei dati tra istanze di Postgres. Si prega di dare heroku-pg-transfer a provare invece.

Questo funziona solo se si utilizza uno dei modelli production databases o il nuovo Heroku postgres dev or basic plans. Se si è ancora sul vecchio piano di database condiviso, suggerirei di passare al nuovo piano di sviluppo.

In primo luogo, trovare l'URL al vostro db su Heroku:

$ heroku config:get DATABASE_URL 
postgres://yada:[email protected]:5432/123 

Poi il trasferimento dal Heroku db al db locale:

$ heroku plugins:install https://github.com/ddollar/heroku-pg-transfer 
$ heroku pg:transfer -t postgres://localhost/dbname -f postgres://yada:[email protected]/123 

Poiché lo strumento Heroku-PG-trasferimento utilizza Postgres di La funzione pg_dump nativa è uno strumento molto più prevedibile e resiliente.

ho scritto più su di esso qui: Using heroku pg:transfer to migrate Postres databases

+0

Grazie [@Ryan Daigle] (http://stackoverflow.com/users/1339184/ryan-daigle) - - Sono d'accordo che heroku-pg-transfer è migliore per coloro che usano il piano di sviluppo di Heroku postgres (e consiglio agli utenti di usarlo!), Tuttavia la mia domanda è chiedere l'utilizzo di Taps, quindi ho contrassegnato il mio come risposta accettata . Ho scritto principalmente questo Q & A perché ho faticato a cercare di capire cosa c'era di sbagliato, quindi se gli altri usano ancora i Tap, spero che trovino questo (e il tuo consiglio) utile. Grazie! – likethesky

+0

Grazie mille per aver postato questo. I rubinetti sono stati una schifezza con cui lavorare, dopo settimane di dolore. Finalmente usato questo approccio e BAM ha funzionato per la prima volta! THANKYOU THANKYOU – Evolve

+0

GRAZIE! Ho perso molte ore cercando di far funzionare Taps con Heroku, e questa è la prima menzione che ho visto su pg: transfer. Ha funzionato la prima volta! – matadur

2

La mia soluzione era quella di aggiungere la gemma rubinetti e la gemma sqlite3 (anche che io non SQLite qualsiasi schermata dell'app) nel Gemfile (in fase di sviluppo) .

+0

Funziona anche se si esegue 'gem install sqlite3' e si lascia fuori dal proprio gemfile. – brent

1

Come per @likethesky, è possibile eseguire il downgrade.In alternativa, basta

~/.rvm/bin/ruby-1.9.2-p320 /usr/bin/heroku db:push 

Naturalmente, che necessita hanno P320 installato con rubinetto e sqllite3 gemme installati pure. Abbastanza facile da mettere in atto.

Problemi correlati