sql >> Base de Datos >  >> RDS >> PostgreSQL

Recibo un error de pg cuando intento destruir un controlador

Un amigo mío tuvo el mismo problema al usar Ruby 2.0 en Windows 7 con Postgres. Ocurre no solo cuando se intenta destruir un controlador, sino también para cada acción de la base de datos (incluido rake db:create). El problema es que el archivo pg_ext.so no está incluido en Ruby 2.0. Se incluye para 1.9, pero simplemente copiar esto a la 2.0 no parece funcionar. Sin embargo, encontré otro método para obtener el pg_ext.so correcto. No estoy exactamente seguro de por qué esto funciona, pero funciona para él. Esto es lo que debe hacer:

  1. Vaya a la carpeta donde debe ubicarse 2.0/pg_ext.so (el archivo que no se pudo encontrar). En su caso C:/Users/rrw/.pik/rubies/Ruby-200-p0/lib/ruby/gems/2.0.0/gems/pg-0.14.1-x86-mingw32/lib/.
  2. Cree una carpeta llamada '2.0' (sin las comillas) aquí.
  3. En esta carpeta necesitará el archivo pg_ext.so correcto. Puede obtenerlo de la siguiente manera:
  4. Instale manualmente la gema pg ("gem install pg" en la consola). Esto instala la versión no x86-mingw32 de la gema. No soluciona el problema, pero crea el pg_ext.so correcto. Creo que esto se debe a que compila la gema pg para su sistema, por lo que para Ruby 2.0. Luego puede usar este archivo pg_ext.so con la versión pg x86-mingw32. Necesitará DevKit para compilar e instalar pg (http://rubyinstaller.org/add- ons/devkit/ ).
  5. Vaya a la ubicación de pg_ext.so en la carpeta de gemas pg-0.14.1. En su caso, sería C:/Users/rrw/.pik/rubies/Ruby-200-p0/lib/ruby/gems/2.0.0/gems/pg-0.14.1/lib.
  6. Copie el archivo pg_ext.so de esta carpeta a la nueva carpeta pg-0.14.1-x86-mingw32/lib/2.0/ en el paso 2.
  7. Ahora vuelva a intentar sus comandos y verifique si todo funciona. Si no es así, elimine su Gemfile.lock y vuelva a ejecutar la instalación del paquete.
  8. El mismo problema con esta gema también podría ocurrir con otras gemas mingw32. Por ejemplo, tuve el mismo problema con la gema bcrypt-rails. Siguiendo los mismos pasos descritos anteriormente se solucionó el problema. Ahora estoy ejecutando con éxito Ruby 2.0 en Windows 7.

PD. Si tiene otros problemas al ejecutar pg gem en Windows 7 de 64 bits, intente instalar la versión x86 de 32 bits de Ruby (RubyInstaller) y postgresql. Además, asegúrese de incluir las carpetas de Ruby en su ruta (esta es una opción al instalar Ruby 2.0 usando RubyInstaller), así como las carpetas lib y bin de Postgresql.

¡Buena suerte!