2012-06-03 15 views
6

He intentado llevar una aplicación a Heroku de la misma forma que siempre he hecho. Estoy usando Ruby 1.9.2 y Rails 3.2.1. Sin embargo, ahora recibo este mensaje de error. Hice lo que se recomiendaHeroku: push rejected - no se pudo instalar gems a través del bundler

make sure that `gem install sqlite3 -v '1.3.5'` succeeds before bundling. 

Nota, se está haciendo esto a pesar de que he hecho en mi Gemfile

group :development, :test do 
    gem 'sqlite3' 
end 
group :production do 
    gem 'pg' 
end 

pero haciendo gem install sqlite3 -v '1.3.5' en la terminal, pero todavía está siendo rechazada el empuje. No estoy seguro de cómo verificar los archivos Gem al que hace referencia en el directorio tmp, pero incluso si lo hiciera, no los entendería

¿Alguna sugerencia?

Gem files will remain installed in /tmp/build_1timyd7o5k59l/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.5 for inspection. 
     Results logged to /tmp/build_1timyd7o5k59l/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.5/ext/sqlite3/gem_make.out 
     An error occurred while installing sqlite3 (1.3.5), and Bundler cannot continue. 
     Make sure that `gem install sqlite3 -v '1.3.5'` succeeds before bundling. 
! 
!  Failed to install gems via Bundler. 
! 
!  Heroku push rejected, failed to compile Ruby/rails app 

Respuesta

9

siempre basta con comentar la gema SQLite3 y funciona bien para mí, así que cuando me empujo a mi heroku Gemfile se ve así:

# Development Database 
#gem 'sqlite3' 
# Production Database 
gem 'pg' 

EDITAR:

La solución anterior funciona, y es fácil si no desea actualizar sus gemas por cualquier razón. La mejor solución a largo plazo para este problema es hacer lo siguiente:

group :development, :test do 
    gem 'sqlite3' 
end 
group :production do 
    gem 'pg' 
end 

continuación, elimine el archivo de gemfile.lock. Tendrá que generar un nuevo archivo gemfile.lock que refleje sus cambios. En el terminal ejecutar:

bundle update 

Por último, actualizar su repositorio y empujar a heroku haciendo lo siguiente en el terminal:

git add . 
git commit -m "commit message" 
git push heroku 
+1

¡Respuesta genial y simple! ¡Gracias! – RileyE

+0

Debe usar el mismo motor SQL tanto en producción como en desarrollo, ya que podría haber algunas diferencias técnicas, introduciendo errores en la producción que no podría ver ni reproducir en el desarrollo. –

+0

Eso es cierto, pero la pregunta era cómo hacer lo anterior. Lo anterior está bien para sitios simples, o para principiantes que quieran usar SQLite localmente. – Arel

1

Por lo que sé Heroku no es compatible con sqlite3, pero en su lugar con una base de datos PostgreSQL. Deberá modificar su Gemfile como tal y su database.yml. Así que para su grupo de producción, en su Gemfile, tendrá que:

https://devcenter.heroku.com/articles/rails3

edición:

No parece haber una respuesta más detallada aquí, por lo que este puede ser un duplicado: Pushing Rails with SQLite3 to Heroku fails

+0

I He estado usando sqlite3 con heroku durante mucho tiempo. Heroku simplemente asigna el sqlite3 a postgres – Leahcim

+0

¿Existe la posibilidad de que publiques todo tu Gemfile? –

2

En realidad su código inicial Gemfile era correcto si desea utilizar sqlite3 localmente . al igual que mostró, que poner esto en el archivo de la gema:

group :development, :test do 
    gem 'sqlite3' 
end 
group :production do 
    gem 'pg' 
end 

entonces usted tiene que borrar su Gemfile.lock local y ejecutar:

bundle update 

para reconstruir el archivo .lock. a continuación, añadir y volver a cometer el Gemfile:

git add Gemfile 
git commit -m "Gemfile commit message" 

luego empuje la nueva Gemfile al repositorio:

git push master 

cambiar los detalles del TGI en consecuencia, por supuesto, pero usted consigue el punto.se trata de agregar/comprometer/presionar el Gemfile.

1

debe agregar actualizada Gemfile.lock a git git y tratar maestro empuje heroku ... funcionó para mí y para asegurarse de que lo hará para usted también

y donot olvide añadir config.action_controller.perform_caching = true

Cuestiones relacionadas