sql >> Databasteknik >  >> RDS >> PostgreSQL

Jag får ett pg-fel när jag försöker förstöra en kontroller

En vän till mig fick samma problem när jag använde Ruby 2.0 på Windows 7 med Postgres. Det inträffar inte bara när man försöker förstöra en kontroller, utan för varje databasåtgärd (inklusive rake db:create). Problemet är att filen pg_ext.so inte ingår för ruby ​​2.0. Det ingår för 1.9, men att bara kopiera detta till 2.0 verkar inte fungera. Men jag hittade en annan metod för att få rätt pg_ext.so. Inte riktigt säker på varför detta fungerar, men det fungerar för honom. Här är vad du behöver göra:

  1. Gå till mappen där 2.0/pg_ext.so (filen som inte kunde hittas) ska finnas. I ditt fall C:/Users/rrw/.pik/rubies/Ruby-200-p0/lib/ruby/gems/2.0.0/gems/pg-0.14.1-x86-mingw32/lib/.
  2. Skapa en mapp som heter '2.0' (utan citattecken) här.
  3. I den här mappen behöver du rätt pg_ext.so-fil. Du kan få detta på följande sätt:
  4. Installera pg-pärlan manuellt ("gem install pg" i konsolen). Detta installerar icke x86-mingw32-versionen av ädelstenen. Det löser inte problemet, men det skapar rätt pg_ext.so. Jag tror att detta beror på att den kompilerar pg-pärlan för ditt system, alltså för ruby ​​2.0. Du kan sedan använda den här filen pg_ext.so med versionen pg x86-mingw32. Du behöver DevKit för att kompilera och installera pg (http://rubyinstaller.org/add- ons/devkit/ ).
  5. Gå till platsen för pg_ext.so i pg-0.14.1 gem-mappen. I ditt fall skulle detta vara C:/Users/rrw/.pik/rubies/Ruby-200-p0/lib/ruby/gems/2.0.0/gems/pg-0.14.1/lib.
  6. Kopiera filen pg_ext.so från den här mappen till den nya mappen pg-0.14.1-x86-mingw32/lib/2.0/ i steg 2.
  7. Försök nu dina kommandon igen och kontrollera om allt fungerar. Om den inte gör det, ta bort din Gemfile.lock och kör paketinstallationen igen.
  8. Samma problem med denna ädelsten kan också uppstå med andra mingw32 ädelstenar. Itill exempel hade jag samma problem med bcrypt-rails pärla. Att följa samma steg som beskrivits ovan löste problemet. Jag kör nu Ruby 2.0 på Windows 7.

Ps. Om du har några andra problem med att köra pg gem på Windows 7 64-bitars, försök sedan installera 32-bitars x86-versionen av Ruby (RubyInstaller) och postgresql. Se dessutom till att du inkluderar Ruby-mapparna i din sökväg (detta är ett alternativ när du installerar ruby ​​2.0 med RubyInstaller) samt Postgresql lib- och bin-mapparna.

Lycka till!




  1. Hur man korrekt hanterar datum i frågebegränsningar

  2. PHP 500 Internt serverfel vid anrop av Volley

  3. Kan inte deklarera variabel inuti funktionen på PostgreSQL

  4. MySQL Entity Framework Error - Den angivna butiksleverantören kan inte hittas i konfigurationen eller är ogiltig