【问题标题】:Rails- Heroku Please install the postgresql adapter: gem install activerecord-postgresql-adapter [duplicate]Rails- Heroku 请安装 postgresql 适配器: gem install activerecord-postgresql-adapter [重复]
【发布时间】:2014-04-15 10:21:37
【问题描述】:

请帮我解决我的问题 我已经阅读了这里的所有主题,但仍然无法理解发生了什么

所以我运行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

你们有什么想法吗?

提前致谢!

【问题讨论】:

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


    【解决方案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

    【讨论】:

    • 谢谢!我删除了 gem“mysql2”,并相应地更新了 database.yml,然后运行 ​​bundle install(成功)然后运行 ​​rake db:migrate 并得到了这个 rake aborted! Please install the postgresql adapter: gem install activerecord-postgresql-adapter (can't activate pg (~> 0.11), already activated pg-0.9.0. Make sure all dependencies are added to Gemfile.)
    • 啊,我确实有一个想法——这可能是因为套接字。如何更新套接字?
    • 好吧,您不必删除 mysql,因为您将其用于开发和测试数据库。我会将 :test, :development 中的 gem 与 :production 中的 pg gem 分组。让 PostgreSQL 数据库在开发环境中工作有点复杂 (railscasts.com/episodes/342-migrating-to-postgresql)。但是为了清除 pg gem 的问题,也许运行 gem update pg 会更新它。
    【解决方案2】:

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

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

    我假设您包含了 pg gem,因为您觉得您必须将 PostgreSQL 的东西与 heroku 一起使用,因此我没有解决您的 production 部分中的 mysql 声明,因为它们会被剥离无论如何。

    (我没有将其放在评论中的声誉)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-25
      • 1970-01-01
      • 2013-06-03
      • 2013-03-06
      • 1970-01-01
      相关资源
      最近更新 更多