2010-12-01 6 views
1

Je suis en train de migrer mes applications Rails à PostGreSql afin de travailler dans le même environnement que sur Heroku ...Sequel ne fonctionne pas avec postgres

J'ai installé Postgres, pg et Postgresql pr bien sur mon mac mais je ne peux pas obtenir des Taps pour retirer mes bases de données de Heroku à mon serveur postgresql.

Mes applications Rails se connectent de manière transparente à la base de données.

Quand je lance dans le RIR ce que je reçois:

>> require "rubygems" 
=> false 
>> require "sequel" 
=> true 
>> DB = Sequel.postgres 
NameError: uninitialized constant Sequel::Postgres::PGError 
    from /Library/Ruby/Gems/1.8/gems/sequel-3.17.0/lib/sequel/adapters/postgres.rb:89 
    from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require' 
    from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `k_require' 
    from /Library/Ruby/Gems/1.8/gems/sequel-3.17.0/lib/sequel/core.rb:249:in `tsk_require' 
    from /Library/Ruby/Gems/1.8/gems/sequel-3.17.0/lib/sequel/core.rb:72:in `check_requiring_thread' 
    from /Library/Ruby/Gems/1.8/gems/sequel-3.17.0/lib/sequel/core.rb:69:in `synchronize' 
    from /Library/Ruby/Gems/1.8/gems/sequel-3.17.0/lib/sequel/core.rb:69:in `check_requiring_thread' 
    from /Library/Ruby/Gems/1.8/gems/sequel-3.17.0/lib/sequel/core.rb:249:in `tsk_require' 
    from /Library/Ruby/Gems/1.8/gems/sequel-3.17.0/lib/sequel/database/connecting.rb:25:in `adapter_class' 
    from /Library/Ruby/Gems/1.8/gems/sequel-3.17.0/lib/sequel/database/connecting.rb:63:in `connect' 
    from /Library/Ruby/Gems/1.8/gems/sequel-3.17.0/lib/sequel/core.rb:119:in `connect' 
    from /Library/Ruby/Gems/1.8/gems/sequel-3.17.0/lib/sequel/core.rb:282:in `adapter_method' 
    from /Library/Ruby/Gems/1.8/gems/sequel-3.17.0/lib/sequel/core.rb:289:in `postgres' 
    from (irb):3 
>> 

Je ne comprends pas ce qui se passe mal.

Quelqu'un a-t-il une idée?


C'est ce que je reçois Jeremy

BigMac:~ jp$ ruby -rubygems -rpg -e "p PGError" 
ruby: no such file to load -- pg (LoadError) 
BigMac:~ jp$ ruby -rubygems -rpostgres -e "p PGError" 
ruby: no such file to load -- postgres (LoadError) 

Je ne suis pas sûr de comprendre ce que vous entendez par « Recherchez un endroit pg.rb ou postgres.rb dans votre chemin »

Dois-je analyser tous les répertoires de mon $ PATH et rechercher un fichier indésirable pg.rb ou postgres.rb?


C'est bizarre parce que je l'ai fait installer pg et postgre

Voici ce que je viens de rencontrer

BigMac:/ jp$ sudo gem install pg 
Password: 
Building native extensions. This could take a while... 
Successfully installed pg-0.10.0 
1 gem installed 
Installing ri documentation for pg-0.10.0... 
Installing RDoc documentation for pg-0.10.0... 
BigMac:/ jp$ ruby -rubygems -rpg -e "p PGError" 
ruby: no such file to load -- pg (LoadError) 
BigMac:/ jp$ 
+0

S'il vous plaît exécuter 'gem search pg postgres' à la ligne de commande et éditer votre question originale, en ajoutant la sortie. Si vous n'obtenez aucune sortie, il semble que vous ayez besoin de lancer 'gem install pg'. –

Répondre

1

Pour une raison quelconque, quel que soit postgres ou fichier pg que vous exigez ne définit pas la PGError classe. Recherchez un pg.rb ou postgres.rb quelque part dans votre chemin.

Qu'est-ce qui se passe lorsque vous ruby ​​les éléments suivants:

ruby -rubygems -rpg -e "p PGError" 
ruby -rubygems -rpostgres -e "p PGError" 
1

Si vous consultez le code source postgres adapter, vous pouvez le voir tente de charger le joyau Ruby pg suivi du joyau postgres (priorité dans cet ordre) . Selon votre sortie de ruby -rubygems -rpg -e "p PGError" Vous n'avez pas la gemme pg, ni la gemme postgres installée sur votre système.

Assurez-vous que vous exécutez gem install pg et essayez à nouveau cette ligne, si cela ne fonctionne pas, cela devient un problème Rubygems et pas un problème Sequel. Si vous êtes en mesure de charger pg, alors PGError sera défini.

3

Je faisais exactement le même problème en essayant d'exécuter heroku db: tirez vers ma base de données postgresql locale en utilisant la gem pg. A fini par hasard régler le problème en supprimant les gemmes suivantes:

activerecord-jdbc-adapter 
activerecord-jdbcpostgresql-adapter 

Essayé à nouveau après avoir enlevé les pierres précieuses et ont réussi à tirer de Heroku avec succès. Essayez de vérifier votre fichier gem pour les gemmes qui se rapportent à postgres autre que votre pg gem et le supprimer. Tout le meilleur

+0

Hey 2potatocakes, j'ai fait une mise à jour heroku gemme et tout a bien fonctionné après cela. Je garderai ta réponse si ça recommence! –

+0

Cela a fonctionné pour moi aussi, incroyable! Beau travail @ 2potatocakes –

Questions connexes