web-dev-qa-db-fra.com

Heroku upload-Precompiling assets a échoué

J'ai besoin d'aide. Lorsque j'essaie de télécharger mon application sur heroku, j'obtiens cette erreur. Quelqu'un sait pourquoi? Quelques-uns avaient tort. Merci 

       Using rake (10.1.0)
       ...
       Using tlsmail (0.0.1)
       Using uglifier (2.1.2)
       Your bundle is complete! It was installed into ./vendor/bundle
-----> Writing config/database.yml to read from DATABASE_URL
-----> Preparing app for Rails asset pipeline
       Running: rake assets:precompile
       /tmp/build_e8889be5-168c-49ed-81e7-b71061fc82ee/vendor/bundle/Ruby/1.9.1/gems/tlsmail-0.0.1/lib/net/smtp.rb:806: warning: already initialized constant SMTPSession
       ...
       /tmp/build_e8889be5-168c-49ed-81e7-b71061fc82ee/vendor/bundle/Ruby/1.9.1/gems/tlsmail-0.0.1/lib/net/pop.rb:702: warning: already initialized constant APOPSession
       DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/1/4/Rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /tmp/build_e8889be5-168c-49ed-81e7-b71061fc82ee/Rakefile:7)
       ...
       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?
       /tmp/build_e8889be5-168c-49ed-81e7-b71061fc82ee/vendor/bundle/Ruby/1.9.1/gems/activerecord-3.2.12/lib/active_record/connection_adapters/postgresql_adapter.rb:1208:in `initialize'
       /tmp/build_e8889be5-168c-49ed-81e7-b71061fc82ee/vendor/bundle/Ruby/1.9.1/gems/activerecord-3.2.12/lib/active_record/connection_adapters/postgresql_adapter.rb:1208:in `new'
       ...
       /tmp/build_e8889be5-168c-49ed-81e7-b71061fc82ee/vendor/bundle/Ruby/1.9.1/gems/actionpack-3.2.12/lib/sprockets/assets.rake:29:in `block (2 levels) in <top (required)>'
       Tasks: TOP => environment
       (See full trace by running task with --trace)
 !
 !     Precompiling assets failed.
19
user2930724

De la Heroku docs :

Cela signifie que votre application tente de se connecter à la base de données dans le cadre d'actifs rake: précompiler. Étant donné que les variables de configuration ne sont pas présentes dans l'environnement, nous utilisons un espace réservé DATABASE_URL pour satisfaire Rails.

Pour résoudre ce problème, assurez-vous que la ligne suivante apparaît dans votre config/application.rb:

# config/application.rb
config.assets.initialize_on_precompile = false

Une fois ajoutées, validez vos modifications et redéployez-les sur Heroku. Vos ressources doivent être compilées sans que votre application ne tente de se connecter à la base de données, ce qui devrait résoudre le problème que vous constatez. 

METTRE &AGRAVE; JOUR:

La ligne 46 de your stacktrace comprend le message suivant: Devise.secret_key was not set.

Selon à l'auteur de Devise, José Valim , ce problème peut être résolu de la manière suivante:

Veuillez ajouter les éléments suivants à votre initialiseur Devise:

config.secret_key = '- clé secrète -'

Alternativement, la solution suivante semble avoir fonctionné pour plusieurs utilisateurs:

Je suis allé dans mon fichier routes.rb et ai commenté la ligne devise_for: installs

Ensuite, je suis retourné et j'ai recommencé. Les Rails ont généré: installer. Si cela ne fonctionne pas, utilisez la version précédente de concevez en modifiant la référence de votre Gemfile à Devise, comme suit: gem "concord", "3.0.3", puis suivez les étapes que j'ai mentionnées ci-dessus. 

27
zeantsoi

Voici quelques problèmes qui ont résolu ce problème pour moi:

# config/application.rb
config.assets.initialize_on_precompile = false

Ensuite, avant de déployer mes ressources, je les ai compilées localement et les ai validées:

Rails_ENV=production bundle exec rake assets:precompile

En outre, j'ai installé ce complément heroku, comme spécifié par l'application que je lançais (dans mon cas, Spree commerce)

heroku labs:enable user-env-compile -a myapp

Et bien sûr, assurez-vous que votre fichier database.yml est configuré pour utiliser adapter: postgresql.

Commencez tout cela, Push to heroku, et espérons que ça se lance. Si vous ne pouvez toujours pas ouvrir votre application, essayez de consulter les journaux Heroku: heroku logs -n 500

J'ai toujours besoin de migrer ma base de données avec heroku run rake db:migrate

10
Danny

J'ai échoué lors de la compilation de Heroku avec le même message d'erreur… .. Carrierwave a provoqué cette erreur parce que j'ai raté la configuration SECRET_KEY_BASE du paramètre Heroku. 

0
Shun Yamada