gema ruby-on-rails ruby postgresql activerecord rubygems

ruby-on-rails - gema postgresql



Cómo manejar el error Ruby on Rails: "Instale el adaptador postgresql:` gem install activerecord-postgresql-adapter ''" (9)

Al ejecutar una aplicación Ruby on Rails (RoR) o un código Ruby que usa el marco ActiveRecord, aparece el mensaje de error:

Instale el adaptador postgresql: gem install activerecord-postgresql-adapter

Intentando correr:

gem install activerecord-postgresql-adapter

también falla, dejándote perdido.


Al probar diferentes resultados de búsqueda, instalé un montón. Lo que finalmente hizo que mi entorno dejara de quejarse con este mensaje: "Instale el adaptador postgresql: gem install activerecord-postgresql-adapter" fue:

  • Eliminé todas las gemas relacionadas con el adaptador, como: sudo gem uninstall activerecord-jdbc-adapter; sudo gem uninstall activerecord-jdbcpostgresql-adapter; sudo gem uninstall activerecord-postgresql-adapter; sudo gem uninstall jdbc-postgres;

  • También eliminé referencias al adaptador como se siguió dentro de mi Gemfile: gem ''activerecord-jdbcpostgresql-adapter''

  • Deje solo pg (0.15.1) instalado (para verificar la existencia de pg, haga "lista de gemas")

Luego, ejecutar "rake db: create" funciona. Entonces, supongo que pg es lo último y funciona. Sin embargo, no se usa cuando hay otras gemas de adaptador rotas.


Aquí está la respuesta que obtuve de Heroku y funcionó para mí (después de probar diferentes gemas, adaptadores y todo lo demás en las otras 10 publicaciones sobre esto)

1) agrega la línea: gem ''pg'' a tu Gemfile.

2) Ejecute la instalación del paquete de comando para instalar la gema en su paquete.

3) Etapa de los cambios de Gemfile y Gemfile.lock: git add Gemfile Gemfile.lock

4) Confirmar los cambios: git commit -m "Instalar la gema pg"

5) Volver a desplegar a heroku: git push heroku master


Comprobar el entorno database.yml db es correcto. Si es postgresql, puede que necesite cambiarlo para referirse a mysql2 o lo que sea que use para su entorno dado.


El problema no es lo que alguien escribió. El problema es que el nombre del adaptador de base de datos postgresql es "postgresql", no "postgres", aunque el nombre de GEM es "pg".

La definición en el archivo database.yml debe incluir

adapter: postgresql


Esto significa que no tiene instalada la nueva biblioteca ''pg'' postgresql. Esto se soluciona fácilmente con un poco de:

sudo gem install pg

I (Dov) encontré otras soluciones en la web que describían la configuración de GEM_HOME y agregaban ~ / .gem / ruby ​​/ vers / bin a su PATH, pero no funcionaban. Esta solución anterior fue proporcionada por Mark Mansour en su blog State of Flux en: http://stateofflux.com/2008/7/13/activerecord-postgresql-adapter-in-rails-2-1/


Hay una condición más profundamente oculta que también causará este error.

Si tiene una variable de entorno local DATABASE_URL = postgres: // mehmehmeh establecido, entonces una gema (sospecho que Heroku) hace que la aplicación piense que Postgres es necesario incluso si no está en ninguna parte en sus configuraciones. Mata a esa variable env y deberías estar bien.


Hice una pequeña revisión del estado actual de los controladores de base de datos Ruby + PostgreSQL en railsonpostgresql.com ; Creo que sudo gem install pg es probablemente la que quieres.


Puedes intentar esto

En debian (squeeze):

aptitude install libdbd-pg-ruby


sudo apt-get install ruby1.8-dev

entonces...

joya instalar pg

¡Trabajó para mi!