PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

J'obtiens une erreur pg lorsque j'essaie de détruire un contrôleur

Un de mes amis a eu le même problème lors de l'utilisation de Ruby 2.0 sur Windows 7 avec Postgres. Cela se produit non seulement lors de la tentative de destruction d'un contrôleur, mais pour chaque action de base de données (y compris rake db:create). Le problème est que le fichier pg_ext.so n'est pas inclus pour ruby ​​2.0. Il est inclus pour la version 1.9, mais le copier simplement dans la version 2.0 ne semble pas fonctionner. Cependant, j'ai trouvé une autre méthode pour obtenir le bon pg_ext.so. Je ne sais pas exactement pourquoi cela fonctionne, mais cela fonctionne pour lui. Voici ce que vous devez faire :

  1. Allez dans le dossier où 2.0/pg_ext.so (le fichier introuvable) doit se trouver. Dans votre cas C:/Users/rrw/.pik/rubies/Ruby-200-p0/lib/ruby/gems/2.0.0/gems/pg-0.14.1-x86-mingw32/lib/.
  2. Créez un dossier appelé "2.0" (sans les guillemets) ici.
  3. Dans ce dossier, vous aurez besoin du bon fichier pg_ext.so. Vous pouvez l'obtenir de la manière suivante :
  4. Installez manuellement le gem pg ("gem install pg" dans la console). Cela installe la version non x86-mingw32 de la gemme. Cela ne résout pas le problème, mais crée le fichier pg_ext.so correct. Je pense que c'est parce qu'il compile le gem pg pour votre système, donc pour ruby ​​2.0. Vous pouvez ensuite utiliser ce fichier pg_ext.so avec la version pg x86-mingw32. Vous aurez besoin de DevKit pour compiler et installer pg (http://rubyinstaller.org/add- ons/devkit/ ).
  5. Allez à l'emplacement de pg_ext.so dans le dossier gem pg-0.14.1. Dans votre cas, ce serait C:/Users/rrw/.pik/rubies/Ruby-200-p0/lib/ruby/gems/2.0.0/gems/pg-0.14.1/lib.
  6. Copiez le fichier pg_ext.so de ce dossier vers le nouveau dossier pg-0.14.1-x86-mingw32/lib/2.0/ à l'étape 2.
  7. Maintenant, réessayez vos commandes et vérifiez si tout fonctionne. Si ce n'est pas le cas, supprimez votre Gemfile.lock et relancez l'installation du bundle.
  8. Le même problème avec cette gemme peut également se produire avec d'autres gemmes mingw32. Par exemple, j'ai eu le même problème avec la gemme bcrypt-rails. Suivre les mêmes étapes que celles décrites ci-dessus a résolu le problème. J'exécute maintenant avec succès Ruby 2.0 sur Windows 7.

Ps. Si vous rencontrez d'autres problèmes lors de l'exécution de la gemme pg sous Windows 7 64 bits, essayez d'installer la version 32 bits x86 de Ruby (le RubyInstaller) et postgresql. De plus, assurez-vous d'inclure les dossiers Ruby dans votre chemin (c'est une option lors de l'installation de ruby ​​2.0 à l'aide de RubyInstaller) ainsi que les dossiers Postgresql lib et bin.

Bonne chance !