27 votes

Erreur lors de la poussée vers Heroku - Abandon de mes ressources de râteau: précompilation

Edit: je suis un nouveau ruby on rails étudiant.

Suite à ma commande Git Push Heroku Maître, je suis en cours d'exécution sur des problèmes avec Heroku. Voici le dernier et le plus grand, l'abandon de la rake actifs:précompiler.

-----> 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

Inclus ci-dessous le contenu de mon 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

Quel pourrait être le problème?

Mise à jour: j'ai couru le râteau de commande avec l'option --trace, et il avait alerté moi avec un échec à cause de la production de la base de données n'existe pas. J'ai créé la base de données, et ran-trace encore, et c'est ce que je suis actuellement en cours de levée:

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

54voto

willglynn Points 5738

Voir les Rails 3.1+ Asset Pipeline sur Heroku de Cèdre de l'article. Ce scénario exact est couvert dans la section Dépannage.

En bref, votre Heroku application a une forte séparation entre la construction (y compris les actifs de la compilation) et la course (où votre application sera disponible). Ceci est cohérent avec le 12-facteur application des principes, mais cela signifie que votre application ne peut pas accéder à tout configuré ressources pendant la phase de construction-y compris la base de données -- sens ActiveRecord est pas disponible lors de l'actif de précompilation.

Vous pouvez dire à Rails de pas pour l'amorçage de votre application lors de l'actif de la compilation en config/application.rb:

config.assets.initialize_on_precompile = false

La section de dépannage recommande également:

Si râteau actifs:précompiler ne fonctionne toujours pas, vous pouvez déboguer cette localement par la configuration d'un inexistante base de données dans votre local, config/database.yml et de tenter d'exécuter rake assets:precompile. Idéalement, vous devriez être en mesure d'exécuter cette commande, sans connexion à la base de données.

12voto

Raymond Gan Points 159

J'ai lutté avec exactement le même problème pendant des heures ce soir. Après avoir ajouté

 config.assets.initialize_on_precompile = false
 

à application.rb, pensez à faire un

 git commit
 

juste après. J'ai oublié de le faire, et Heroku n'avait aucune idée que j'avais changé application.rb. Ils n'ont pas cette ligne supplémentaire sur leur page de dépannage.

4voto

Serge Seletskyy Points 1859

Pour Rails 4

Activer la fonctionnalité Heroku Labs pour résoudre ce problème

labos heroku: activer la compilation utilisateur-env

2voto

Matt Long Points 16701

J'ai eu ce problème avec des Rails 4 et aucun des autres suggestions ont aidé. J'ai finalement pensé à elle et c'était dû à la Rollify gem essayez de vous connecter à la base de données. Qui a été résolu dans la Rollify gem, cependant, vous devrez peut-être saisir le dernier code source pour obtenir le correctif. Je viens de changer mon bijou d'importation pour Rollify à:

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

Qui semble résoudre le problème et je n'ai pas eu à faire d'autres propositions.

N'oubliez pas de bundle install et valider la modification de git.

Aussi, si cela ne résout pas votre problème, vous pouvez commencer à regarder de près les gemmes que vous utilisez et de faire en sorte qu'aucun d'entre eux tentent de se connecter à la base de données.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X