Ich erhalte ähnliche Fehler wie in diesen Fragen , außer dass meine bei Heroku auftreten :
2011-05-30T09:03:29+00:00 heroku[worker.1]: Starting process with command: `rake jobs:work`
2011-05-30T09:03:30+00:00 app[worker.1]: (in /app)
2011-05-30T09:03:30+00:00 heroku[worker.1]: State changed from starting to up
2011-05-30T09:03:33+00:00 app[worker.1]: rake aborted!
2011-05-30T09:03:33+00:00 app[worker.1]: uninitialized constant Rake::DSL
2011-05-30T09:03:33+00:00 app[worker.1]: /app/.bundle/gems/ruby/1.9.1/gems/rake-0.9.0/lib/rake/tasklib.rb:8:in `<class:TaskLib>'
Die Antwort in diesen Fragen scheint zu spezifizieren, gem 'rake', '0.8.7'
da die Version 0.9 das Problem verursacht.
Wenn ich versuche, gem 'rake', '0.8.7'
meine Gemfile zu erweitern und auf Heroku zu pushen, wird folgende Fehlermeldung angezeigt:
Unresolved dependencies detected; Installing...
You have modified your Gemfile in development but did not check
the resulting snapshot (Gemfile.lock) into version control
You have added to the Gemfile:
* rake (= 0.8.7)
FAILED: http://devcenter.heroku.com/articles/bundler
! Heroku push rejected, failed to install gems via Bundler
error: hooks/pre-receive exited with error code 1
To git@heroku.com:my_app.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to '[email protected]:my_app.git'
Meine Gemfile funktioniert normalerweise gut auf Heroku. Was soll ich machen?
Antworten:
Fügen Sie dies in Ihr Rakefile oben ein und benötigen Sie 'Rake':
quelle
require
Zeile zum Rakefile (und das erneute Festschreiben und erneute Drücken auf Github und Heroku) löste das Problem. @ David, ich verwende Windows mit dem RoR-Framework von RailInstaller 1.2.0.Jedes Mal, wenn Sie Ihre Gem-Datei ändern, müssen Sie
bundle install
Ihre Sperrdatei (Gemfile.lock) aktualisieren. Der Fehler, den Sie beim Push erhalten, ist nicht spezifisch für das Ändern der Rake-Version.Beachten Sie die Fehlermeldung, die Sie erhalten haben:
quelle
Ich habe das endlich gelöst, nachdem ich viel rumgespielt hatte. Die Kurzversion von dem, was ich getan habe und die vielen Experimente verpasst habe, war folgende:
1) Ändern Sie die Gemfile, um Rake 0.8.7 anzugeben
2) Nehmen Sie einen Hack heraus, den ich zuvor zu Rakefile hinzugefügt hatte, basierend auf der Stapelüberlauffrage Ruby on Rails und Rake-Problemen: nicht initialisierte Konstante Rake :: DSL :
Mein Rakefile ist nun wieder das Standard-Rakefile für meine App:
3) Ändern Sie Heroku, um meine App in Ruby 1.9.2 auszuführen:
Und jetzt scheint es in Ordnung zu sein - die geplante Cron-Aufgabe wird trotzdem ausgeführt.
EDIT: Es lief einmal gut und explodierte dann wieder, wenn ich das nächste Mal etwas drückte! Arrgh. Ich glaube, ich habe es jetzt behoben, mit dem Zusatz des
delayed_job
Edelsteins, basierend auf dem Gespräch. Ich weiß nicht, wie man Aufgabenjobs erstellt: Arbeit .Die Installation
delayed_job
scheint keine großartige Lösung zu sein, aber sie hat funktioniert, und ich möchte sie vielleicht irgendwann verwenden, insbesondere bei Herokus Cron-Job einmal pro Stunde (der einfach nicht häufig genug ist - es gibt Dinge, die ich ' Ich möchte wahrscheinlich alle fünf Minuten laufen. Nachdem ich dendelayed_job
Edelstein installiert hatte, musste ich das Setup dafür durchführen, sonst beschwert sich Heroku über die fehlendedelayed_jobs
Tabelle:quelle
Ich hatte eine Rails 3.0.11-App, die Rake-Version 0.8.7 in der Gemfile spezifizierte, um das Rake :: DSL-Problem der Version 0.9.2 zu umgehen.
Nachdem ich die App auf Rails 3.2.0 (Heroku Cedar Stack) konvertiert hatte, hatte ich ein Problem mit dem Absturz des Workers (eine Rechenaufgabe). Ich habe "gem 'rake', '0.8.7'" in "gem 'rake'" geändert, wodurch die Rake-Version 0.9.2.2 gebündelt wurde. Der Worker hat mit der neuen Version aufgehört zu stürzen.
quelle
Ihr Problem wird dadurch verursacht, dass die
Gemfile.lock
Datei nicht gelöscht wird und nicht spezifisch für Heroku ist. Das LöschenGemfile.lock
sollte dieses Problem beheben, führt Sie jedoch direkt zu einem anderen:Leider habe ich die Lösung für dieses Problem noch nicht gefunden, da ein Downgrade von Rake auf 0.8.7 hier nicht zu funktionieren scheint. Wenn jemand anderes eine Antwort hat, würde ich es sehr schätzen.
quelle