如何处理Ruby on Rails错误:“请安装postgresql适配器:`gem install activerecord-postgresql-adapter'”

运行使用ActiveRecord框架的Ruby on Rails(RoR)应用程序或Ruby代码时,您会收到错误消息:

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

试图运行:

 gem install activerecord-postgresql-adapter 

也失败了,让你无所适从。

问题不是任何人写的。 问题是postgresql数据库适配器的名称是“postgresql”,而不是“postgres”,尽pipeGEM的名称是“pg”。

database.yml文件中的定义应该包括

  adapter: postgresql 

这里是我从Heroku得到的答案,它适用于我(在尝试不同的PGgem,适配器,和其他10个职位上的其他一切关于这个)

1)添加行:gem'pg'到你的Gemfile。

2)运行命令bundle install将gem安装到您的软件包中。

3)对Gemfile和Gemfile.lock进行阶段更改:git add Gemfile Gemfile.lock

4)提交更改:git commit -m“安装pg gem”

5)重新部署到heroku:git push heroku master

这意味着你没有安装新的'pg'postgresql库。 这很容易修复一下:

 sudo gem install pg 

我(Dov)在网上find了其他解决scheme,描述了设置GEM_HOME并将〜/ .gem / ruby​​ / vers / bin添加到PATH中,但是它们不起作用。 上述解决scheme由Mark Mansour在其博客State of Flux上提供: http : //stateofflux.com/2008/7/13/activerecord-postgresql-adapter-in-rails-2-1/

还有一个更深层次的隐藏条件,也会导致这个错误。

如果你有一个本地环境variablesDATABASE_URL = postgres:// mehmehmeh set,那么一些gem(我怀疑Heroku)会导致应用程序认为Postgres是必需的,即使它不在你的configuration中。 杀死envvariables,你应该没问题。

sudo apt-get install ruby​​1.8-dev

然后…

gem安装页

为我工作!

检查database.yml环境数据库是否正确。 如果是postgresql,你可能需要改变它来引用mysql2或你在给定环境中使用的任何db。

你可以试试这个

关于debian(挤压):

 aptitude install libdbd-pg-ruby 

我在railsonpostgresql.com上对Ruby + PostgreSQL数据库驱动程序的当前状态进行了一些简单的介绍 ; 我想sudo gem install pg可能是你想要的。

在尝试不同的search结果时,我安装了一堆。 终于让我的环境停止抱怨这个消息:“请安装postgresql适配器:gem install activerecord-postgresql-adapter”是:

  • 我删除了有关适配器的所有gem,如:sudo gem uninstall activerecord-jdbc-adapter; sudo gem uninstall activerecord-jdbcpostgresql-adapter; sudo gem卸载activerecord-postgresql-adapter; sudo gem卸载jdbc-postgres;

  • 我也删除了对我的Gemfile中的适配器的引用:gem'activerecord-jdbcpostgresql-adapter'

  • 只留下pg(0.15.1)安装(检查pg的存在,做“gem列表”)

然后运行“耙db:创build”的作品。 所以,我猜pg是最新的和有效的。 但是,当其他破坏的适配器gem周围时,它不会被使用。