我已经构建了我的第一个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:inrescue 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:
有人可以帮助我吗?
谢谢!
答案 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