2017-05-29 45 views
0

這是我第一次嘗試將後端Rails應用程序部署到Heroku,並且我發現ActiveRecord存在問題。奇怪的是,ActiveRecord並沒有在我的應用程序中使用。它不在我的Gemfile中,而且我沒有使用數據庫。當我部署到Heroku的,但是,我在日誌中看到這樣一條消息:Heroku部署錯誤 - 需要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 

我無法安裝sqlite3寶石,但是,因爲它不支持在Heroku。有誰知道如何刪除ActiveRecord的要求,或者是否有其他內容導致此錯誤?

回答

0

將您的Gemfile中的gem 'sqlite3'替換爲gem 'pg'。儘管你可能不需要數據庫,但Heroku在軌道堆棧中有一個。即使你不使用它,Rails本身也與ActiveRecord打包在一起。

用pg替換sqlite3應該讓你過去。

+0

謝謝,這工作!我還必須更改database.yml文件以說明postgresql – paoliff