PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Ottengo un errore pg quando provo a distruggere un controller

Un mio amico ha riscontrato lo stesso problema durante l'utilizzo di Ruby 2.0 su Windows 7 con Postgres. Si verifica non solo quando si tenta di distruggere un controller, ma per ogni azione del database (incluso rake db:create). Il problema è che il file pg_ext.so non è incluso per ruby ​​2.0. È incluso per 1.9, ma semplicemente copiarlo nel 2.0 non sembra funzionare. Tuttavia, ho trovato un altro metodo per ottenere il corretto pg_ext.so. Non sono esattamente sicuro del motivo per cui funziona, ma per lui funziona. Ecco cosa devi fare:

  1. Vai alla cartella in cui dovrebbe trovarsi 2.0/pg_ext.so (il file che non è stato trovato). Nel tuo caso C:/Users/rrw/.pik/rubies/Ruby-200-p0/lib/ruby/gems/2.0.0/gems/pg-0.14.1-x86-mingw32/lib/.
  2. Crea una cartella chiamata '2.0' (senza virgolette) qui.
  3. In questa cartella avrai bisogno del file pg_ext.so corretto. Puoi ottenerlo nel modo seguente:
  4. Installa manualmente pg gem ("gem install pg" nella console). Questo installa la versione non x86-mingw32 della gem. Non risolve il problema, ma crea il pg_ext.so corretto. Penso che ciò sia dovuto al fatto che compila il pg gem per il tuo sistema, quindi per ruby ​​2.0. È quindi possibile utilizzare questo file pg_ext.so con la versione pg x86-mingw32. Avrai bisogno di DevKit per compilare e installare pg (http://rubyinstaller.org/add- ons/devkit/ ).
  5. Vai alla posizione di pg_ext.so nella cartella gem pg-0.14.1. Nel tuo caso questo sarebbe C:/Users/rrw/.pik/rubies/Ruby-200-p0/lib/ruby/gems/2.0.0/gems/pg-0.14.1/lib.
  6. Copia il file pg_ext.so da questa cartella nella nuova cartella pg-0.14.1-x86-mingw32/lib/2.0/ nel passaggio 2.
  7. Ora riprova i comandi e controlla se tutto funziona. In caso contrario, elimina Gemfile.lock ed esegui nuovamente l'installazione del pacchetto.
  8. Lo stesso problema con questa gemma potrebbe verificarsi anche con altre gemme mingw32. Ad esempio, ho avuto lo stesso problema con la gemma bcrypt-rails. Seguendo gli stessi passaggi descritti sopra, il problema è stato risolto. Ora sto eseguendo correttamente Ruby 2.0 su Windows 7.

Sal. Se hai altri problemi con l'esecuzione di pg gem su Windows 7 a 64 bit, prova a installare la versione x86 a 32 bit di Ruby (il RubyInstaller) e postgresql. Inoltre, assicurati di includere le cartelle Ruby nel tuo percorso (questa è un'opzione durante l'installazione di Ruby 2.0 usando RubyInstaller) così come le cartelle Postgresql lib e bin.

Buona fortuna!