postgres - Heroku está intentando instalar la gema sqlite3 aunque no esté en el Gemfile
heroku postgres guide (4)
Cuando me encontré con el problema, resultó que había olvidado confirmar mis cambios después de la bundle install
. Doh! git status
debe indicar cambios sin etapas para los archivos gema.
Estoy tratando de implementar una aplicación Rails 3.1 por primera vez en Heroku. Lo puse en la pila de cedros, eliminé la gema sqlite3 pero cuando presiono el código para Heroku obtengo este error:
-----> Instalación de dependencias usando Bundler versión 1.1.rc En ejecución: instalación de paquete --sin desarrollo: prueba - proveedor / paquete de ruta - implementación - Obtención de metadatos de gemas desde http://rubygems.org/ ... .. (...)
Instalación de rieles (3.1.0) Instalación de sqlite3 (1.3.4) con extensiones nativas Desafortunadamente, se ha producido un error fatal. Informe este error al rastreador de problemas de Bundler en https://github.com/carlhuda/bundler/issues para que podamos solucionarlo. ¡Gracias! /usr/local/lib/ruby/1.9.1/rubygems/installer.rb:483:in `rescate en bloque en build_extensions '': ERROR: No se pudo construir la extensión nativa de la gema. (Gem :: Installer :: ExtensionBuildError) / usr / local / bin / ruby extconf.rb buscando sqlite3.h ... no
No tengo idea de por qué la instalación de paquetes está intentando instalar sqlite3. Echa un vistazo a mi Gemfile y Gemfile.lock:
Gemfile
source ''http://rubygems.org''
gem ''rails'', ''3.1.0''
gem ''json''
gem ''pg''
gem ''thin''
# Gems used only for assets and not required
# in production environments by default.
group :assets do
# gem ''sass-rails'', " ~> 3.1.0"
# gem ''coffee-rails'', "~> 3.1.0"
gem ''uglifier''
end
gem ''jquery-rails''
Gemfile.lock
GEM remote: http://rubygems.org/ specs:
actionmailer (3.1.0)
actionpack (= 3.1.0)
mail (~> 2.3.0)
actionpack (3.1.0)
activemodel (= 3.1.0)
activesupport (= 3.1.0)
builder (~> 3.0.0)
erubis (~> 2.7.0)
i18n (~> 0.6)
rack (~> 1.3.2)
rack-cache (~> 1.0.3)
rack-mount (~> 0.8.2)
rack-test (~> 0.6.1)
sprockets (~> 2.0.0)
activemodel (3.1.0)
activesupport (= 3.1.0)
bcrypt-ruby (~> 3.0.0)
builder (~> 3.0.0)
i18n (~> 0.6)
activerecord (3.1.0)
activemodel (= 3.1.0)
activesupport (= 3.1.0)
arel (~> 2.2.1)
tzinfo (~> 0.3.29)
activeresource (3.1.0)
activemodel (= 3.1.0)
activesupport (= 3.1.0)
activesupport (3.1.0)
multi_json (~> 1.0)
arel (2.2.1)
bcrypt-ruby (3.0.1)
builder (3.0.0)
daemons (1.1.4)
erubis (2.7.0)
eventmachine (0.12.10)
execjs (1.2.9)
multi_json (~> 1.0)
hike (1.2.1)
i18n (0.6.0)
jquery-rails (1.0.14)
railties (~> 3.0)
thor (~> 0.14)
json (1.6.1)
mail (2.3.0)
i18n (>= 0.4.0)
mime-types (~> 1.16)
treetop (~> 1.4.8)
mime-types (1.16)
multi_json (1.0.3)
pg (0.11.0)
polyglot (0.3.2)
rack (1.3.3)
rack-cache (1.0.3)
rack (>= 0.4)
rack-mount (0.8.3)
rack (>= 1.0.0)
rack-ssl (1.3.2)
rack
rack-test (0.6.1)
rack (>= 1.0)
rails (3.1.0)
actionmailer (= 3.1.0)
actionpack (= 3.1.0)
activerecord (= 3.1.0)
activeresource (= 3.1.0)
activesupport (= 3.1.0)
bundler (~> 1.0)
railties (= 3.1.0)
railties (3.1.0)
actionpack (= 3.1.0)
activesupport (= 3.1.0)
rack-ssl (~> 1.3.2)
rake (>= 0.8.7)
rdoc (~> 3.4)
thor (~> 0.14.6)
rake (0.9.2)
rdoc (3.9.4)
sprockets (2.0.0)
hike (~> 1.2)
rack (~> 1.0)
tilt (~> 1.1, != 1.3.0)
thin (1.2.11)
daemons (>= 1.0.9)
eventmachine (>= 0.12.6)
rack (>= 1.0.0)
thor (0.14.6)
tilt (1.3.3)
treetop (1.4.10)
polyglot
polyglot (>= 0.3.1)
tzinfo (0.3.29)
uglifier (1.0.3)
execjs (>= 0.3.0)
multi_json (>= 1.0.2)
PLATFORMS ruby
DEPENDENCIES jquery-rails json pg rails (= 3.1.0) thin uglifier
¿Cómo puedo arreglarlo?
Solución simple sin desinstalar la gema sqlite3 para Heroku:
Añadir a Gemfile:
group :production do
gem ''pg'', ''0.17.1'' #or version of pg you want
gem ''rails_12factor'', ''0.0.2'' #Heroku static assets for image and css
Comprueba que tienes:
end
end
al final del código en Gemfile
que Guarde Gemfile y ejecute bundle install
$ bundle install --without production
que cometer
$ git commit -a -m "Update Gemfile.lock for Heroku"
que
$ git push heroku master
Eso es todo. Solo recibirá algunas advertencias que es simplemente para corregir.
Tengo el mismo problema y la solución de zoltarSpeaks lo solucionó. Después de leer este artículo, instalé la gema de grifos que indicaba que sería necesario para pasar de un sqlite3 local a postgresql de producción: http://batsov.com/articles/2011/10/30/deploying-rails31-apps-on-celadon-cedar/ . Resultó que no necesitaba la gema de grifos después de todo, pero era claramente el problema. Eliminado la referencia, actualización de paquete, todos los sistemas van.
intente eliminar Gemfile.lock y ejecute Bundle Install, commit y push