无法将Rails应用程序部署到Heroku;当我不使用任何数据库时抱怨postgres

时间:2015-03-01 13:39:24

标签: ruby-on-rails ruby heroku heroku-postgres

我已经构建了我的第一个rails应用程序,我正在尝试将其部署到Heroku,但每次推送时应用程序都崩溃了。当我尝试登录rails控制台时,可以看到:

  

运行rails console附加到终端...向上,运行6183   /app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.2.0/lib/active_record/connection_adapters/connection_specification.rb:177:in   rescue in spec': Specified 'postgresql' for database adapter, but the gem is not loaded. Add gem'pg'`到您的Gemfile(并确保它的   版本是ActiveRecord所要求的最低版本。 (GEM :: LoadError)

我甚至没有在我的应用中使用任何数据库。 这是我的database.yml文件的样子:

# SQLite version 3.x
#   gem install sqlite3
#
#   Ensure the SQLite 3 gem is defined in your Gemfile
#   gem 'sqlite3'
#

development:

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:

production:

有人可以帮助我吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

问题是heroku将重写database.yml或设置rails将自动获取的环境变量。

您需要实际停止Activerecord加载:

要执行此操作,请替换config / application.rb

顶部的require "rails/all"

require "action_controller/railtie"
require "action_mailer/railtie"
require "sprockets/railtie"
require "rails/test_unit/railtie"

您还需要删除引用activerecord

的config / initializers或config / environment中的任何内容

答案 1 :(得分:0)

我相信heroku使用自己的自动数据库配置忽略你的database.yml,这解释了为什么它仍然期望postgres。除了包含宝石外,我不确定你能做些什么。

答案 2 :(得分:0)

您可以在宝石文件中执行此操作。

group :production do
  gem 'rails_12factor'
end