2010-12-01 12 views
1

Ich versuche, meine Rails-Anwendungen zu PostgreSQL arbeiten, um in dem gleichen environnement wie auf Heroku zu wandern ...Sequel arbeitet nicht mit Postgres

Ich installierte Postgres, S., und Postgres-pr auf meinem Mac, aber ich kann keine Taps bekommen, um meine Datenbanken von Heroku auf meinen Postgresql-Server zu bringen.

Meine Rails Apps verbinden sich nahtlos mit der Datenbank.

Als ich in den irb laufen dieses ist, was ich bekommen:

>> 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 
>> 

Ich verstehe nicht, was falsch läuft.

Hat jemand eine Idee?


Dies ist, was ich Jeremy bekommen

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) 

Ich bin nicht sicher, zu verstehen, was Sie von

"für eine pg.rb oder postgres.rb irgendwo in Ihrem Pfad Check" bedeuten

Sollte ich alle Verzeichnisse in meinem $ PATH scannen und nach einer unerwünschten pg.rb- oder postgres.rb-Datei suchen?


Das ist seltsam, weil ich pg und postgre tat installieren

Hier ist, was ich lief nur

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

Bitte führen Sie "Gem Search Pg Postgres" in der Befehlszeile und bearbeiten Sie Ihre ursprüngliche Frage, die Ausgabe hinzufügen. Wenn Sie keine Ausgabe erhalten, dann klingt es so, als müssten Sie 'gem install pg' ausführen. –

Antwort

1

Aus irgendeinem Grund, was auch immer Postgres oder pg Datei, die Sie benötigen wird nicht definiert, die PGError Klasse. Suchen Sie nach einem pg.rb oder postgres.rb irgendwo in Ihrem Pfad.

Was passiert, wenn Sie die folgenden Rubin:

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

Wenn Sie den Code postgres adapter Quelle überprüfen, können Sie sehen, es das pg Ruby-Juwel von dem postgres gem gefolgt versucht zu laden (in dieser Reihenfolge priorisiert) . Entsprechend Ihrer Ausgabe von ruby -rubygems -rpg -e "p PGError" haben Sie nicht das pg Juwel, noch haben Sie das postgres Juwel, das auf Ihrem System installiert wird.

Stellen Sie sicher, dass Sie gem install pg ausführen und versuchen Sie es erneut, wenn das nicht funktioniert, wird es ein Rubygems-Problem und kein Sequel-Problem. Wenn Sie pg laden können, wird PGError definiert.

3

Ich lief in genau das gleiche Problem versucht Heroku db: Pull zu meiner lokalen Postgresql-Datenbank mit der PG-Edelstein. das Problem zu lösen, indem die folgenden Edelsteine ​​zufällig gelandet:

activerecord-jdbc-adapter 
activerecord-jdbcpostgresql-adapter 

versucht, wieder nach diesen Edelsteinen zu entfernen und verwaltet von Heroku erfolgreich zu ziehen. Versuche deine Edelsteindatei nach Edelsteinen zu durchsuchen, die sich auf Postgrebe beziehen, die sich von deinem PG-Edelstein unterscheiden, und entferne sie. Alles Gute

+0

Hey 2potatocakes, ich habe ein Juwel Update Heroku und alles hat gut funktioniert danach. Ich werde deine Antwort behalten, wenn es wieder passiert! –

+0

Das hat auch für mich funktioniert, unglaublich! Netter Job @ 2potatocakes –