2017-05-29 44 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