4 Stimmen

Wie behebt man diesen Heroku-Fehler mit der pg Gemfile und Rails 3.1?

Ich versuche, eine Rails 3.1-App (mit CoffeeScript) auf Heroku hochzuladen. Anscheinend gibt es bekannte Probleme damit (http://stackoverflow.com/questions/6075961/problem-deploying-rails-3-1-project-to-heroku-could-not-find-a-javascript-runtim), also habe ich dies zu meiner Gemfile hinzugefügt:

group :production do
  gem 'therubyracer-heroku', '0.8.1.pre3'

Dann, nach ein paar Versuchen, fand ich heraus, dass ich folgendes tun musste:

group :production do
  gem 'therubyracer-heroku', '0.8.1.pre3'
  gem 'pg'
  # pg from http://stackoverflow.com/questions/6410623/heroku-error-when-launch-rails3-1-app-missing-postgres-gem

Jetzt erhalte ich diesen Fehler: "Du hast deine Gemfile in der Entwicklung geändert, aber das resultierende Schnappschuss (Gemfile.lock) nicht in der Versionskontrolle überprüft"

git push heroku master
Zähle Objekte: 5, fertig.
Delta-Komprimierung mit bis zu 4 Threads.
Komprimierung der Objekte: 100% (3/3), fertig.
Schreibe Objekte: 100% (3/3), 402 Bytes, fertig.
Insgesamt 3 (Delta 2), wiederverwendet 0 (Delta 0)

-----> Heroku erhält den Push
-----> Rails-App erkannt
-----> Erkannt, dass Rails nicht auf statische Assets zugreift
       Installation von rails3_serve_static_assets... done
-----> Konfigurieren von Rails 3, um x-sendfile zu deaktivieren
       Installation von rails3_disable_x_sendfile... done
-----> Konfigurieren von Rails zum Protokollieren in stdout
       Installation von rails_log_stdout... done
-----> Gemfile erkannt, Bundler-Version 1.0.7 wird ausgeführt
       Nicht gelöste Abhängigkeiten erkannt; Installation...
       Verwendung von --without development:test
       Du hast deine Gemfile in der Entwicklung geändert, aber
       den resultierenden Schnappschuss (Gemfile.lock) nicht überprüft
       in der Versionskontrolle

       Du hast zur Gemfile hinzugefügt:
       * pg
       FEHLER: http://devcenter.heroku.com/articles/bundler
 !     Heroku-Push abgelehnt, Installation von Gems über Bundler fehlgeschlagen

Nun, es gibt keinen aktualisierten Gemfile.lock zum Einchecken... auch nachdem ich bundle update ausgeführt habe. Was ist los? Wie zur Hölle deploye ich auf Heroku? Ich dachte, Ruby on Rails und Heroku sollten einfach zu starten sein!

2voto

dmonopoly Punkte 3095

Interessante Timing, da ich kürzlich in der Lage war, eine Rails 3.1 App auf Heroku zu deployen. Als erstes, stellen Sie sicher, dass die Gemfile.lock tatsächlich in der Versionskontrolle eingecheckt ist. Dann überlegen Sie, dies zu verwenden:

group :production do
  gem 'therubyracer', '~> 0.9.3.beta1'

Dies hat bei mir perfekt funktioniert, und ich benutze auch das 'pg' Gem. Ich habe den Fehler, den Sie hatten, nie bekommen - aber ich weiß, dass das oben angegebene 'therubyracer' Gem einen JS Fehler auf Herokus (oder vielleicht Sprockets'?) Seite behebt.

Viel Glück.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X