Rails- Heroku请安装postgresql适配器:gem install activerecord-postgresql-adapter

时间:2014-03-11 17:17:57

标签: ruby-on-rails postgresql heroku gem mysql2

请帮我解决我的问题 我在这里阅读了所有主题,但仍然无法理解正在发生的事情

所以我运行git push heroku master

这是我得到的

rake aborted!
Please install the postgresql adapter: `gem install activerecord-postgresql-adapter` (pg is not part of the bundle. Add it to Gemfile.)

之后我更新了我的Gemfile,这里是

ruby '1.9.3'
source 'https://rubygems.org'

gem 'rails', '3.2.13'
gem 'mysql2'
gem 'pg'

group :assets do
  gem 'sass-rails',  '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'uglifier', '>= 1.0.3'
  gem 'therubyracer', :platform => :ruby
end

gem 'less-rails', '~> 2.2.6'
gem 'sass-rails', '~> 3.2.3'
gem 'twitter-bootstrap-rails', '2.2.4'

gem 'jquery-rails'
gem 'devise'
gem 'haml', '~> 4.0.0'
gem 'haml-rails'
gem 'cancan'
gem 'rails-i18n', '~> 3.0.0.pre'
gem 'i18n-js', :github => 'fnando/i18n-js'
gem 'obscenity'
gem 'thin'
gem 'will_paginate-bootstrap'
gem 'nifty-generators', :group => :development
gem 'rails_12factor'
gem 'mocha', :group => :test

之后bundle install显示错误

这里是config / database.yml

production:
  adapter: mysql2
  host: 127.0.0.1
  encoding: utf8
  reconnect: false
  database: xxx_production
  pool: 5
  username: root
  password: "xxxx"
  socket: /var/run/mysqld/mysqld.sock
development:
  adapter: mysql2
  host: localhost
  encoding: utf8
  reconnect: false
  database: xxx_development
  pool: 5
  username: root
  password: "xxxx"
  socket: /var/run/mysqld/mysqld.sock

test:
  adapter: mysql2
  host: localhost
  encoding: utf8
  reconnect: false
  database: xxx_test
  pool: 5
  username: root
  password: "xxxx"
  socket: /var/run/mysqld/mysqld.sock

你们有什么想法吗?

提前致谢!

2 个答案:

答案 0 :(得分:1)

Heroku在PostgreSQL数据库上运行最简单。

您同时安装了pgmysql2,并且正在将mysql2用于生产数据库。

在Heroku的生产中使用PG数据库要容易得多。

要执行此操作,请首先清除database.yml的生产部分 然后,在你的Gemfile中,将pg gem放在生产部分中,如下所示:

group :production do
  gem "pg"
end

如果您真的想使用mysql,请查看这些文章

https://devcenter.heroku.com/articles/heroku-mysql

https://addons.heroku.com/cleardb

答案 1 :(得分:0)

我遇到了几乎完全相同的问题,将此解决方案发布到此question,其症状与此处描述的相似。

基本上:在执行git push heroku master命令之前,您是否更新了git存储库?

我假设你包含了pg gem,因为你觉得你必须使用带有 heroku 的PostgreSQL内容,所以我没有在你的production部分中解决mysql声明他们无论如何都会被剥夺。

(我没有将此作为评论的声誉)