2012-06-21 20 views
6

he conseguido los siguientes errores utilizando rubí 1.9.2-p320 con grifos de Heroku-db usando '' comandos como:db: tirar de grifos de carga de error: No existe el fichero a cargar - pg

heroku db:pull --app my-app 

que produce errores como:

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

-o-

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

(Y sí, por cierto, tengo todas las gemas correctas, incluyendo ambos postgres - run está bien localmente - y sqlite3, además de haber desinstalado, reinstalado y actualizado los grifos & heroku gems e incluirlos, así como no incluirlos en mi Gemfile. Estoy ejecutando Rails 3.2.6)

Aunque hay un error conocido que provoca un error de "desplazamiento de zona horaria": heroku db:push not working, using taps gem, no he visto ninguna publicación de SO que aborde directamente este problema.

Respuesta

2

La solución que encontré, el uso de sugerencias de https://github.com/ricardochimal/taps/issues/92 se detalla aquí: https://github.com/ricardochimal/taps/issues/92#issuecomment-6486535

El corto de él, es que Ruby 1.9.2-p320 parece haber sido el problema, por lo que yo puedo decir. La degradación a ruby ​​1.9.2-p290 me lo arregló. Esto podría estar relacionado con los problemas de ruby ​​1.9.3 mencionados en el enlace anterior, no estoy seguro.

Si todavía está colgado allí con Taps, por favor vea this comment at GH, ya que el póster doshea parece haberlo examinado con más detalle que yo o jfeust.

También voy a reiterar aquí que si usted no necesita Taps, entonces heroku-pgtransfer es su amigo. Ver Ryan's answer to my question here y his excellent blog post sobre el uso de la herramienta más nueva.

+0

FYI, la joya de grifos no funciona para mí con ruby ​​1.9.2-p290. Aparece el error 'Error de carga de taps: no se carga ningún archivo de ese tipo: pulsaciones/operación'. – Clay

+1

Taps comenzó a funcionar para mí utilizando las mismas versiones de Ruby tanto en Heroku como a nivel local. [Ver mi comentario de GH] (https://github.com/ricardochimal/taps/issues/92#issuecomment-6486535): Sugeriría que pruebes: $ 'heroku run 'ruby -v'' y veas qué versión es Heroku corriendo y luego actualiza tu local para que coincida. No hay garantías, pero parece ser lo que hizo para mí (de nuevo, adivinar, tal vez por culpa es [la discusión de Ruby]] (http://stackoverflow.com/questions/8151571/error-when-pushing-data-to- heroku-time-zone-displacement-out-of-range)?). También vea el comentario de jfeust en GH en Heroku toolbelt. – likethesky

+0

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

15

Taps ya no es la herramienta recomendada para usar al migrar datos entre instancias de postgres. Por favor, pruebe heroku-pg-transfer.

Esto solo funcionará si está utilizando uno de los production databases o el nuevo Heroku postgres dev or basic plans. Si todavía está en el plan de base de datos compartida anterior, le sugiero cambiar al nuevo plan de desarrollo.

primer lugar, encontrar la dirección URL a su base de datos en Heroku:

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

A continuación, traslado desde el heroku db a su base de datos local de:

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

Dado que la herramienta heroku-transferencia pg utiliza de Postgres la instalación nativa pg_dump es una herramienta mucho más predecible y resistente.

He escrito más sobre él aquí: Using heroku pg:transfer to migrate Postres databases

+0

Gracias [@Ryan Daigle] (http://stackoverflow.com/users/1339184/ryan-daigle) - - Estoy de acuerdo en que heroku-pg-transfer es mejor para aquellos que están usando el plan de postres dev de Heroku (¡y recomiendo a los usuarios que lo usen!), Sin embargo mi pregunta es acerca del uso de Taps, así que he marcado el mío como la respuesta aceptada . Principalmente publiqué esta sesión de preguntas y respuestas porque tuve problemas para tratar de descubrir qué era lo que estaba mal, por lo tanto, si otros todavía usan Taps, espero que les haya resultado útil (y a tus consejos). ¡Gracias! – likethesky

+0

Muchas gracias por publicar esto. Taps ha sido una mierda para trabajar, después de semanas de dolor. ¡Finalmente usé este enfoque y BAM trabajó por primera vez! GRACIAS GRACIAS – Evolve

+0

¡GRACIAS! He perdido muchas horas tratando de hacer que Taps trabaje con Heroku, y esta es la primera mención que he visto de pg: transferencia. ¡Trabajó por primera vez! – matadur

2

Mi solución fue añadir la gema grifos y la gema sqlite3 (aun que no SQLite en cualquier lugar de la aplicación) en el Gemfile (en desarrollo) .

+0

Esto también funciona si solo ejecuta 'gem install sqlite3' y lo deja fuera de su gemfile. – brent

1

Según @likethesky, puede degradar.Como alternativa, sólo

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

Por supuesto, esto requiere P320 han instalado con grifo y sqllite3 gemas instaladas también. Lo suficientemente fácil como para ponerlo en su lugar.

Cuestiones relacionadas