PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Recebo um erro de pg ao tentar destruir um controlador


Um amigo meu teve o mesmo problema ao usar Ruby 2.0 no Windows 7 com Postgres. Ocorre não apenas ao tentar destruir um controlador, mas para cada ação do banco de dados (incluindo rake db:create). O problema é que o arquivo pg_ext.so não está incluído no Ruby 2.0. Ele está incluído no 1.9, mas simplesmente copiá-lo para o 2.0 não parece funcionar. No entanto, encontrei outro método para obter o pg_ext.so correto. Não sei exatamente por que isso funciona, mas funciona para ele. Aqui está o que você precisa fazer:
  1. Vá para a pasta onde 2.0/pg_ext.so (o arquivo que não pôde ser encontrado) deve estar localizado. No seu caso C:/Users/rrw/.pik/rubies/Ruby-200-p0/lib/ruby/gems/2.0.0/gems/pg-0.14.1-x86-mingw32/lib/.
  2. Crie uma pasta chamada '2.0' (sem as aspas) aqui.
  3. Nesta pasta, você precisará do arquivo pg_ext.so correto. Você pode obter isso da seguinte maneira:
  4. Instale manualmente a gem pg ("gem install pg" no console). Isso instala a versão não x86-mingw32 da gem. Ele não corrige o problema, mas cria o pg_ext.so correto. Eu acho que isso é porque ele compila a gem pg para seu sistema, então para ruby ​​2.0. Você pode então usar este arquivo pg_ext.so com a versão pg x86-mingw32. Você precisará do DevKit para compilar e instalar o pg (http://rubyinstaller.org/add- ons/devkit/ ).
  5. Vá para o local de pg_ext.so na pasta gem pg-0.14.1. No seu caso, seria C:/Users/rrw/.pik/rubies/Ruby-200-p0/lib/ruby/gems/2.0.0/gems/pg-0.14.1/lib.
  6. Copie o arquivo pg_ext.so desta pasta para a nova pasta pg-0.14.1-x86-mingw32/lib/2.0/ na etapa 2.
  7. Agora tente novamente seus comandos e verifique se tudo funciona. Caso contrário, exclua seu Gemfile.lock e execute novamente a instalação do pacote.
  8. O mesmo problema com esta gem pode ocorrer com outras gems mingw32 também. Por exemplo, eu tive o mesmo problema com a gem bcrypt-rails. Seguir os mesmos passos descritos acima corrigiu o problema. Agora estou executando com êxito o Ruby 2.0 no Windows 7.

Ps. Se você tiver outros problemas ao executar a gem pg no Windows 7 de 64 bits, tente instalar a versão x86 de 32 bits do Ruby (o RubyInstaller) e o postgresql. Além disso, certifique-se de incluir as pastas Ruby em seu caminho (esta é uma opção ao instalar o ruby ​​2.0 usando o RubyInstaller), bem como as pastas lib e bin do Postgresql.

Boa sorte!