如何处理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 ruby1.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周围时,它不会被使用。