运行Ruby on Rails(RoR)应用程序或使用ActiveRecord框架的Ruby代码,您会收到错误消息:
请安装postgresql适配器:
gem install activerecord-postgresql-adapter
尝试运行:
gem install activerecord-postgresql-adapter
也失败了,让你不知所措。
答案 0 :(得分:126)
问题不是任何人写的。 问题是postgresql数据库适配器的名称是“postgresql”,而不是“postgres”,尽管GEM的名称是“pg”。
database.yml文件中的定义应包括
adapter: postgresql
答案 1 :(得分:10)
这是我从Heroku得到的答案,它对我有用(在尝试了不同的pg宝石,适配器以及其他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
答案 2 :(得分:9)
这意味着你没有安装新的'pg'postgresql库。这很容易解决:
sudo gem install pg
我(Dov)在网上找到了其他解决方案,其中描述了设置GEM_HOME并将〜/ .gem / ruby / vers / bin添加到您的PATH,但它们不起作用。上述解决方案由以下提供 马克·曼苏尔在他的博客“助焊剂状态”中写道: http://stateofflux.com/2008/7/13/activerecord-postgresql-adapter-in-rails-2-1/
答案 3 :(得分:5)
还有一个更深层次的隐藏条件也会导致此错误。
如果你有一个本地环境变量 DATABASE_URL = postgres:// mehmehmeh 设置,那么一些gem(我怀疑是Heroku)会让app认为Postgres是必需的,即使它在你的配置中没有任何地方。杀掉那个env变量,你应该没问题。
答案 4 :(得分:2)
你可以试试这个
关于debian(挤压):
aptitude install libdbd-pg-ruby
答案 5 :(得分:1)
sudo apt-get install ruby1.8-dev
...然后
gem install pg
为我工作!
答案 6 :(得分:1)
检查database.yml环境db是否正确。如果是postgresql,您可能需要更改它以引用mysql2或您在给定环境中使用的任何数据库。
答案 7 :(得分:0)
我对railsonpostgresql.com上的Ruby + PostgreSQL数据库驱动程序的当前状态进行了一些综述;我认为sudo gem install pg
可能就是你想要的那个。
答案 8 :(得分:0)
在尝试不同的搜索结果时,我安装了一堆。什么终于让我的环境停止抱怨这条消息:“请安装postgresql适配器:gem install activerecord-postgresql-adapter”是:
我删除了与适配器相关的所有宝石,例如: sudo gem uninstall activerecord-jdbc-adapter; sudo gem uninstall activerecord -jdbcpostgresql-adapter; sudo gem uninstall activerecord-postgresql-adapter; sudo gem uninstall jdbc-postgres;
我还在我的Gemfile中删除了对适配器的引用: gem'activerecord -jdbcpostgresql-adapter'
只保留pg(0.15.1)(检查是否存在pg,做“宝石清单”)
然后运行“rake db:create”工作。所以,我猜pg是最新的并且有效。但是,当其他破损的适配器宝石出现时,它不会被使用。