web-dev-qa-db-fra.com

Comment gérer Ruby on Rails: "Veuillez installer l'adaptateur postgresql:` gem install activerecord-postgresql-adapter ""

Exécution d'une Ruby sur Rails (RoR) app ou Ruby code qui utilise le framework ActiveRecord, vous obtenez le message d'erreur) :

Veuillez installer l'adaptateur postgresql: gem install activerecord-postgresql-adapter

Essayer de courir:

gem install activerecord-postgresql-adapter

échoue également, vous laissant à perte.

60
user71268

Le problème n'est pas ce que quelqu'un a écrit. Le problème est que le nom de l'adaptateur de base de données postgresql est "postgresql", pas "postgres", bien que le nom du GEM soit "pg".

La définition dans le fichier database.yml doit inclure

  adapter: postgresql
127
mcr

Voici la réponse que j'ai obtenue de Heroku et cela a fonctionné pour moi (après avoir essayé différents gemmes pg, adaptateurs et tout le reste sur les 10 autres messages à ce sujet)

1) ajoutez la ligne: gem 'pg' à votre Gemfile.

2) Exécutez la commande bundle install pour installer la gemme dans votre bundle.

3) Mettez en place les changements Gemfile et Gemfile.lock: git add Gemfile Gemfile.lock

4) Validez les modifications: git commit -m "Install the pg gem"

5) Redéployer vers heroku: git Push heroku master

10
jstreebin

Cela signifie que vous n’avez pas installé la nouvelle bibliothèque "pg" postgresql. Ceci est facilement résolu avec un peu de:

Sudo gem install pg

J'ai (Dov) trouvé d'autres solutions sur le Web qui décrivaient la définition de GEM_HOME et l'ajout de ~/.gem/Ruby/vers/bin à votre PATH, mais elles ne fonctionnaient pas. Cette solution ci-dessus a été fournie par Mark Mansour sur son blog State of Flux à: http://stateofflux.com/2008/7/13/activerecord-postgresql-adapter-in-Rails-2-1/ =

9
user71268

Il existe une autre condition profondément cachée qui provoquera également cette erreur.

Si vous avez une variable d'environnement locale DATABASE_URL = postgres: // mehmehmeh set, alors une gemme (je soupçonne Heroku) fait penser à l'application que Postgres est requis même s'il n'est nulle part dans vos configurations. Tuez cette variable env et tout ira bien.

5
Chad

Vous pouvez essayer ceci

Sur debian (squeeze):

aptitude install libdbd-pg-Ruby
2
Daniel134

Sudo apt-get install Ruby1.8-dev

ensuite...

installer gem pg

A travaillé pour moi!

1
KurtB

Vérifiez que l'environnement de base de données database.yml est correct. S'il s'agit de postgresql, vous devrez peut-être le modifier pour faire référence à mysql2 ou à tout autre db que vous utilisez pour votre environnement donné.

1
Doug

J'ai fait un petit tour d'horizon de l'état actuel de Ruby + pilotes de base de données PostgreSQL sur railsonpostgresql.com ; je pense que Sudo gem install pg est probablement celui que vous voulez.

0
tomcopeland

En essayant différents résultats de recherche, j'ai installé un tas. Ce qui a finalement empêché mon environnement de se plaindre de ce message: "Veuillez installer l'adaptateur postgresql: gem install activerecord-postgresql-adapter" était:

  • J'ai supprimé toutes les gemmes relatives à l'adaptateur, telles que: Sudo gem désinstalle activerecord-jdbc-adapter; Sudo gem désinstalle activerecord-jdbcpostgresql-adapter; Sudo gem désinstalle activerecord-postgresql-adapter; Sudo gem désinstalle jdbc-postgres;

  • J'ai également supprimé les références à l'adaptateur comme suit dans mon Gemfile: gem 'activerecord-jdbcpostgresql-adapter'

  • Ne laissez que pg (0.15.1) installé (pour vérifier l'existence de pg, faites "gem list")

Ensuite, exécutez "rake db: create" fonctionne. Donc, je suppose que pg est le dernier et fonctionne. Cependant, il n'est pas utilisé lorsque d'autres gemmes d'adaptateur cassées sont présentes.

0
Viet Pham