it-swarm.com.de

Heroku-Upload-Vorkompilierung von Assets ist fehlgeschlagen

Ich brauche Hilfe. Beim Versuch, meine App auf Heroku hochzuladen, erhalte ich diese Fehlermeldung. Weiß jemand warum? Ein paar waren falsch. Vielen Dank 

       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

Aus den Heroku-Dokumenten :

Dies bedeutet, dass Ihre App im Rahmen von Rake-Assets versucht, eine Verbindung zur Datenbank herzustellen: Vorkompilierung. Da die Konfigurationsvariablen in der Umgebung nicht vorhanden sind, verwenden wir einen Platzhalter DATABASE_URL, um Rails zufrieden zu stellen.

Stellen Sie sicher, dass die folgende Zeile in Ihrem config/application.rb angezeigt wird, um dieses Problem zu beheben:

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

Nach dem Hinzufügen fügen Sie Ihre Änderungen fest und implementieren Sie sie erneut bei Heroku. Die Assets sollten kompiliert werden, ohne dass Ihre App versucht, eine Verbindung zur Datenbank herzustellen. Dadurch wird der aufgetretene Fehler behoben. 

UPDATE:

Zeile 46 von your stacktrace enthält folgende Nachricht: Devise.secret_key was not set.

Laut dem Autor von Devise José Valim kann dieses Problem auf folgende Weise gelöst werden:

Bitte fügen Sie Ihrem Devise-Initialisierer Folgendes hinzu:

config.secret_key = '- geheimer Schlüssel -'

Alternativ, die folgende Lösung scheint für eine Reihe von Benutzern funktioniert zu haben:

Ich ging zu meiner Datei routes.rb und kommentierte die Zeile devise_for: installments aus

Dann ging ich zurück und reran Rails generieren: install. Wenn dies nicht funktioniert, verwenden Sie die vorherige Version von devise, indem Sie den Verweis von Gemfile auf Devise folgendermaßen ändern: gem 'devise', '3.0.3' und dann den oben genannten Schritten folgen. 

27
zeantsoi

Es gibt ein paar Dinge, die dieses Problem für mich gelöst haben:

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

Vor meiner Bereitstellung habe ich meine Assets lokal zusammengestellt und festgeschrieben:

Rails_ENV=production bundle exec rake assets:precompile

Ich habe dieses Heroku-Add-On installiert, wie von der App angegeben, die ich startete (in meinem Fall Spree Commerce).

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

Stellen Sie natürlich sicher, dass Ihre database.yml-Datei auf adapter: postgresql eingestellt ist.

Übernehmen Sie all dies, drücken Sie auf Heroku und hoffentlich wird es gestartet. Wenn Sie Ihre App immer noch nicht öffnen können, schauen Sie sich die Heroku-Protokolle an: heroku logs -n 500

Ich musste meine Datenbank noch mit heroku run rake db:migrate migrieren.

10
Danny

wenn Sie Github verwenden und im Entwicklungszweig auf Heroku drängen, tun Sie es nicht, gehen Sie zum Masterzweig und holen Sie sich die Updates im Entwicklungszweig von git merge develop

nachdem,

Rails precompile:assets
git add -A
git commit -m "Precompile assets"
git Push heroku master

wenn Sie die von Ihnen bereitgestellte Website öffnen möchten

heroku open

wenn nichts angezeigt wird, migrieren Sie Ihre Datenbank zuerst wie folgt:

heroku run Rails db:migrate
heroku open
2
Migi

Ich habe Heroku nicht mit derselben Fehlermeldung proceompiling. Carrierwave verursacht das, weil ich SECRET_KEY_BASE auf Heroku eingestellt habe. 

0
Shun Yamada