2017-05-29 4 views
0

Dies ist das erste Mal, dass ich versuche, eine Back-End-Rails-App für Heroku bereitzustellen, und ich finde ein Problem mit ActiveRecord. Das Merkwürdige ist, dass ActiveRecord in meiner Anwendung überhaupt nicht verwendet wird. Es ist nicht in meinem Gemfile und ich verwende keine Datenbank. Als ich nach Heroku einsetzen, jedoch sehe ich diese Nachricht in meinem Logs:Heroku Deployment Error - Requiring ActiveRecord

2017-05-29T21:07:47.824117+00:00 heroku[web.1]: Starting process with command `bundle exec rails server` 
2017-05-29T21:07:52.180887+00:00 app[web.1]: /app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.0.2/lib/active_record/connection_adapters/connection_specification.rb:176:in `rescue in spec': Specified 'sqlite3' for database adapter, but the gem is not loaded. Add `gem 'sqlite3'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord). (Gem::LoadError)``` 

This leads to a long list of errors and warnings about ActiveRecord, culminating in `2017-05-29T21:10:40.107538+00:00 heroku[web.1]: State changed from starting to crashed` 

followed by `2017-05-29T21:10:40.089176+00:00 heroku[web.1]: Process exited with status 1`. 

After this first failure, the subsequent logs all read: 

```2017-05-29T21:10:39.968550+00:00 app[web.1]:  from /app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/commands/commands_tasks.rb:85:in `tap' 
2017-05-29T21:10:39.968551+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/commands/commands_tasks.rb:85:in `server' 
2017-05-29T21:10:39.968551+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/commands/commands_tasks.rb:49:in `run_command!' 
2017-05-29T21:10:39.968552+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.3.0/gems/railties-5.0.2/lib/rails/commands.rb:18:in `<top (required)>' 
2017-05-29T21:10:39.968553+00:00 app[web.1]: from bin/rails:9:in `require' 
2017-05-29T21:10:39.968553+00:00 app[web.1]: from bin/rails:9:in `<main>' 
2017-05-29T21:10:39.983313+00:00 app[web.1]: => Booting Puma 
2017-05-29T21:10:39.983318+00:00 app[web.1]: => Rails 5.0.2 application starting in production on http://0.0.0.0:11396 
2017-05-29T21:10:39.983319+00:00 app[web.1]: => Run `rails server -h` for more startup options 
2017-05-29T21:10:39.983320+00:00 app[web.1]: Exiting 
2017-05-29T21:10:40.089176+00:00 heroku[web.1]: Process exited with status 1 

ich das sqlite3 Juwel nicht installieren können, aber da ist es nicht auf Heroku unterstützt. Kann jemand die Anforderung für ActiveRecord entfernen oder ist es etwas anderes, das diesen Fehler verursacht?

Antwort

0

Ersetzen Sie gem 'sqlite3' durch gem 'pg' in Ihrem Gemfile. Obwohl Sie möglicherweise keine Datenbank benötigen, wird Heroku mit einem auf dem Rails-Stack ausgeliefert. Rails selbst ist mit ActiveRecord verpackt, obwohl Sie es nicht verwenden.

Ersetzen sqlite3 mit pg sollten Sie vorbeikommen.

+0

Danke, das hat funktioniert! Ich musste auch die database.yml-Datei ändern, um postgresql zu berücksichtigen – paoliff

Verwandte Themen