我正在尝试使用heroku使用的免费托管。我尝试了很多选项,我仍然在heroku日志中不断收到此错误“请安装postgresql适配器:`gem install ...”。
首先,我差不多1年前得到了同样的错误,我期待heroku现在解决这个问题。
我需要做些什么才能让它发挥作用?
这是我的GEMFILE:
1 source 'https://rubygems.org'
2
3 gem 'rails', '3.2.14'
4
5 # Bundle edge Rails instead:
6 # gem 'rails', :git => 'git://github.com/rails/rails.git'
7
8 gem 'activerecord-postgresql-adapter'
9 gem 'typhoeus'
10
11 # Gems used only for assets and not required
12 # in production environments by default.
13 group :assets do
14 gem 'sass-rails', '~> 3.2.3'
15 gem 'coffee-rails', '~> 3.2.1'
16 gem "twitter-bootstrap-rails"
17 # See https://github.com/sstephenson/execjs#readme for more supported runtimes
18 # gem 'therubyracer', :platforms => :ruby
19
20 gem 'uglifier', '>= 1.0.3'
21 end
22
23 group :development do
24 gem 'debugger'
25 end
26
27 group :development, :test do
28 gem 'capybara'
29 gem 'rspec-rails', '~> 2.0'
30 gem 'factory_girl'
31 gem 'mysql2'
32 end
33
34 group :test do
35 gem 'vcr'
36 end
37
38 group :production do
39 gem 'pg'
40 end
41
42 gem 'proxylocal'
43
44 gem 'devise'
45 gem 'jquery-rails'
46 gem 'turbolinks'
和我的config / database.yml文件:
1 # MySQL. Versions 4.1 and 5.0 are recommended.
2 #
3 # Install the MYSQL driver
4 # gem install mysql2
5 #
6 # Ensure the MySQL gem is defined in your Gemfile
7 # gem 'mysql2'
8 #
9 # And be sure to use new-style password hashing:
10 # http://dev.mysql.com/doc/refman/5.0/en/old-client.html
11 development:
12 adapter: postgresql
13 encoding: utf8
14 reconnect: false
15 database: resource-management_development
16 pool: 5
17 username: root
18 password:
19 socket: /tmp/mysql.sock
20
21 # Warning: The database defined as "test" will be erased and
22 # re-generated from your development database when you run "rake".
23 # Do not set this db to the same as development or production.
24 test: &test
25 adapter: postgresql
26 encoding: utf8
27 reconnect: false
28 database: resource-management_test
29 pool: 5
30 username: root
31 password:
32 socket: /tmp/mysql.sock
33
34 production:
35 adapter: postgresql
36 encoding: utf8
37 reconnect: false
38 database: resource-management_production
39 pool: 5
40 username: root
41 password:
42 socket: /tmp/mysql.sock
43
44 cucumber:
45 <<: *test
以下是完整错误:
/app/vendor/bundle/ruby/2.0.0/gems/bundler-1.3.2/lib/bundler/rubygems_integration.rb:214:in `block in replace_gem': Please install the postgresql adapter: `gem install activerecord-postgresql-a
dapter` (pg is not part of the bundle. Add it to Gemfile.) (LoadError)
有人可以解决这个问题,所以我和很多人都可以在这个被神弃绝的平台上进行部署吗?
PS:你可能会注意到我在开发中有一个“gem'mysql2'”,这是因为我从这里得到了另一个解决方案。如果没有它,它就行不通。答案 0 :(得分:1)
如果您使用Heroku,则不应在database.yml中使用生产组。要使数据库在生产中工作,您需要运行:
heroku run rake db:migrate
要在本地使用此功能,请查看此设置:https://devcenter.heroku.com/articles/heroku-postgresql#local-setup
如果您使用的是mysql,请更改测试和开发配置,但我建议让所有三个环境使用相同的数据库系统。
答案 1 :(得分:0)
根据这个:https://devcenter.heroku.com/articles/rails3你必须使用gem pg
。也许这就是问题所在。
答案 2 :(得分:0)
我不知道您为什么在gem 'activerecord-postgresql-adapter'
的第8行使用此gemfile
。您是否试过删除此行?