www que online learn ruby-on-rails heroku

ruby-on-rails - que - vps heroku



Error al presionar a heroku, cancelando mis activos de rake: precompilación (4)

Editar: Soy un nuevo estudiante de ruby ​​on rails.

Después de mi Git Push Heroku Master, estoy teniendo problemas con Heroku. Aquí está lo último y lo mejor, abortando los activos de rake: precompilación.

-----> Preparing app for Rails asset pipeline Running: rake assets:precompile rake aborted! could not connect to server: Connection refused Is the server running on host "127.0.0.1" and accepting TCP/IP connections on port 5432? Tasks: TOP => environment (See full trace by running task with --trace) Precompiling assets failed, enabling runtime asset compilation Injecting rails31_enable_runtime_asset_compilation Please see this article for troubleshooting help: http://devcenter.heroku.com/articles/rails31_heroku_cedar#troubleshooting

A continuación se incluyen los contenidos de mi Gemfile:

gem ''rails'', ''3.2.8'' gem ''bootstrap-sass'', ''2.1'' gem ''pg'' group :development, :test do gem ''rspec-rails'' gem ''guard-rspec'' gem ''guard-spork'' gem ''spork'' gem ''annotate'' gem ''database_cleaner'' end # Gems used only for assets and not required # in production environments by default. group :assets do gem ''sass-rails'', ''~> 3.2.3'' end platforms :jruby do gem ''trinidad'' gem ''jruby-openssl'' end gem ''jquery-rails'' # Use unicorn as the web server # gem ''unicorn'' # Deploy with Capistrano # gem ''capistrano'' # To use debugger # gem ''ruby-debug'' # Bundle the extra gems: gem ''RedCloth'', ''~> 4.2.9'', :require => ''redcloth'' gem ''ruby-openid'', :require => ''openid'' gem ''rack-openid'', :require => ''rack/openid'' gem ''aaronh-chronic'', :require => ''chronic'' # Fixes for 1.9.2 gem ''coderay'' gem ''lesstile'' gem ''formtastic'' gem ''will_paginate'', ''~> 3.0.2'' gem ''exception_notification'', ''~> 2.5.2'' gem ''open_id_authentication'' # Bundle gems for the local environment. Make sure to # put test-only gems in this group so their generators # and rake tasks are available in development mode: group :test do gem ''database_cleaner'' gem ''cucumber-rails'', :require => false gem ''cucumber-websteps'', :require => false gem ''factory_girl'' gem ''rspec'' gem ''nokogiri'', ''~> 1.5.0'' gem ''webrat'' end

¿Cuál podría ser el problema?

Actualización: ejecuté el comando rake con --trace, y me alertó con un error porque la base de datos de producción no existía. Creé la base de datos y ejecuté --trace nuevamente, y esto es lo que estoy lanzando actualmente:

Command failed with status (1): [/usr/local/Cellar/ruby/1.9.3-p286/bin/ruby...]


Luché con exactamente el mismo problema, durante horas esta noche. Después de agregar

config.assets.initialize_on_precompile = false

a application.rb, recuerda hacer una

git commit

justo después. Me olvidé de hacer esto, y Heroku no tenía idea de que había cambiado la aplicación.rb. No tienen esta línea adicional en su página de solución de problemas.


Para Rails 4

Habilitar la función Heroku Labs para solucionar este problema

Laboratorios heroku: habilite user-env-compile


Tuve este problema con Rails 4 y ninguna de las otras sugerencias me ayudó. Finalmente lo descubrí y fue debido a la gema Rollify tratando de conectarse a la base de datos. Eso se ha corregido en la gema Rollify, sin embargo, es posible que necesite obtener el último código fuente para obtener la solución. Solo cambio mi importación de gemas para Rollify a:

gem ''rolify'', :git => ''git://github.com/EppO/rolify.git''

Eso pareció solucionar el problema y no tuve que hacer ninguna de las otras sugerencias.

No te olvides de agrupar la instalación y confirmar el cambio a git.

Además, si eso tampoco soluciona su problema, es posible que desee comenzar a observar de cerca las gemas que está utilizando y asegurarse de que ninguna intente conectarse a la base de datos.


Ver el Canal de Activos de Rails 3.1+ en el artículo de Cedar Heroku . Este escenario exacto se trata en la sección Solución de problemas.

En resumen, su aplicación Heroku tiene una fuerte separación entre compilación (incluida la compilación de activos) y ejecución (donde su aplicación está disponible). Esto es coherente con los principios de la aplicación de 12 factores , pero significa que su aplicación no puede acceder a ningún recurso configurado durante la fase de compilación, incluida la base de datos, lo que significa que ActiveRecord no está disponible durante la precompilación de activos.

Puede indicar a Rails que no arranque su aplicación durante la compilación de activos en config/application.rb :

config.assets.initialize_on_precompile = false

La sección de resolución de problemas también recomienda:

Si los activos de rake: la precompilación aún no funciona, puede depurar esto localmente configurando una base de datos inexistente en su config/database.yml local.yml e intentando ejecutar rake assets:precompile . Lo ideal sería que pueda ejecutar este comando sin conectarse a la base de datos.