sql >> Database >  >> RDS >> PostgreSQL

Ik krijg een pg-fout wanneer ik een controller probeer te vernietigen

Een vriend van mij kreeg hetzelfde probleem bij het gebruik van Ruby 2.0 op Windows 7 met Postgres. Het komt niet alleen voor bij het vernietigen van een controller, maar bij elke databaseactie (inclusief rake db:create). Het probleem is dat het bestand pg_ext.so niet is opgenomen voor ruby ​​2.0. Het is inbegrepen voor 1.9, maar dit simpelweg kopiëren naar de 2.0 lijkt niet te werken. Ik heb echter een andere methode gevonden om de juiste pg_ext.so te verkrijgen. Ik weet niet precies waarom dit werkt, maar het werkt voor hem. Dit is wat u moet doen:

  1. Ga naar de map waar 2.0/pg_ext.so (het bestand dat niet kon worden gevonden) zich zou moeten bevinden. In jouw geval C:/Users/rrw/.pik/rubies/Ruby-200-p0/lib/ruby/gems/2.0.0/gems/pg-0.14.1-x86-mingw32/lib/.
  2. Maak hier een map met de naam '2.0' (zonder de aanhalingstekens).
  3. In deze map heb je het juiste bestand pg_ext.so nodig. U kunt dit op de volgende manier verkrijgen:
  4. Installeer de pg gem handmatig ("gem install pg" in console). Hiermee wordt de niet-x86-mingw32-versie van de edelsteen geïnstalleerd. Het lost het probleem niet op, maar het creëert wel de juiste pg_ext.so. Ik denk dat dit komt omdat het de pg-edelsteen voor je systeem compileert, dus voor ruby ​​2.0. U kunt dan dit pg_ext.so-bestand gebruiken met de pg x86-mingw32-versie. Je hebt DevKit nodig om pg te compileren en te installeren (http://rubyinstaller.org/add- ons/devkit/ ).
  5. Ga naar de locatie van pg_ext.so in de map pg-0.14.1 gem. In jouw geval zou dit C:/Users/rrw/.pik/rubies/Ruby-200-p0/lib/ruby/gems/2.0.0/gems/pg-0.14.1/lib zijn.
  6. Kopieer het bestand pg_ext.so van deze map naar de nieuwe map pg-0.14.1-x86-mingw32/lib/2.0/ in stap 2.
  7. Probeer nu je commando's opnieuw en controleer of alles werkt. Als dit niet het geval is, verwijdert u uw Gemfile.lock en voert u de bundelinstallatie opnieuw uit.
  8. Hetzelfde probleem met deze edelsteen kan zich ook voordoen bij andere mingw32-edelstenen. Ik had bijvoorbeeld hetzelfde probleem met de bcrypt-rails-edelsteen. Door dezelfde stappen als hierboven beschreven te volgen, is het probleem verholpen. Ik draai Ruby 2.0 nu met succes op Windows 7.

Ps. Als je andere problemen hebt met het uitvoeren van de pg gem op Windows 7 64 bit, probeer dan de 32 bit x86-versie van Ruby (de RubyInstaller) en postgresql te installeren. Zorg er verder voor dat u de Ruby-mappen in uw pad opneemt (dit is een optie tijdens het installeren van ruby ​​2.0 met behulp van de RubyInstaller) evenals de Postgresql lib- en bin-mappen.

Veel succes!




  1. ONDERSCHEIDEN SELECTEREN *

  2. Een opgeslagen procedure uitvoeren in een selectiequery

  3. is er een automatische update-optie voor DateTimeField in peewee zoals TimeStamp in MySQL?

  4. Hoe gedeeltelijk/volledig overlappende gebeurtenissen met begin- en eindtijdstempels uit de query-uitvoer verwijderen?