11155  
                (-- --)
               
                 
              
                  
                    December 17, 2010,  5:02pm
                   
                   
              1 
               
             
            
              In the past, I've used mysql with rails without problem. I need to work
with postgresql, but I'm having trouble getting it working. I've seen
conflicting reports on what gems are needed. My latest install was
sudo gem install postgres --
--with-pgsql-include-dir=/Library/PostgreSQL8/include
--with-pgsql-lib-dir=/Library/PostgreSQL8/lib
(note: I did this blindly. It's about my 6th try to get proper gems in
place)
I'm running Rails 2.3.8 and PostgreSQL 8.4.2
My .yml configuration is
development:
  adapter: postgresql
  database: movies
  username:  michael2
  port:  5432
  allow_concurrency:  true
  encoding:  SQL_ASCII
When I try to do a test connect with rake db:migrate, I get the
following:
rake db:migrate --trace
(in /oldhome/michael/projects/movies)
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
rake aborted!
syntax error on line 3, col 9: `  adapter: postgresql'
/usr/lib/ruby/1.8/yaml.rb:133:in `load'
/usr/lib/ruby/1.8/yaml.rb:133:in `load'
             
            
               
               
               
            
            
           
          
            
            
              
In the past, I've used mysql with rails without problem. I need to work
with postgresql, but I'm having trouble getting it working. I've seen
conflicting reports on what gems are needed. My latest install was
sudo gem install postgres --
--with-pgsql-include-dir=/Library/PostgreSQL8/include
--with-pgsql-lib-dir=/Library/PostgreSQL8/lib
(note: I did this blindly. It's about my 6th try to get proper gems in
place)
 
Not your error, but for what it's worth, I'm using the 'pg' gem without any issues.
I'm running Rails 2.3.8 and PostgreSQL 8.4.2
My .yml configuration is
development:
adapter: postgresql
database: movies
username:  michael2
port:  5432
allow_concurrency:  true
encoding:  SQL_ASCII
When I try to do a test connect with rake db:migrate, I get the
following:
rake db:migrate --trace
(in /oldhome/michael/projects/movies)
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
rake aborted!
syntax error on line 3, col 9: `  adapter: postgresql'
/usr/lib/ruby/1.8/yaml.rb:133:in `load'
/usr/lib/ruby/1.8/yaml.rb:133:in `load'
        ---------
Can anyone offer some help? Thanks much
 
Rails is failing on a syntax error in your database.yml file.  It has nothing to do with PostgreSQL at this point.
My guess is that instead of two leading spaces on that line you've got a tab.  Or some other unicode character pretending to be a space...
Fix that and see what happens...
-philp
             
            
               
               
               
            
            
           
          
            
              
                11155  
                (-- --)
               
              
                  
                    December 17, 2010,  5:58pm
                   
                   
              3 
               
             
            
              Philip Hallstrom wrote in post #969102: 
Rails is failing on a syntax error in your database.yml file.  It has
nothing to do with PostgreSQL at this point.
My guess is that instead of two leading spaces on that line you've got a
tab.  Or some other unicode character pretending to be a space...
Fix that and see what happens...
-philp
 
That certainly changed the result. Now it's
rake db:migrate --trace
(in /oldhome/michael/projects/movies)
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:migrate
rake aborted!
uninitialized constant
ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::PGconn
             
            
               
               
               
            
            
           
          
            
              
                11155  
                (-- --)
               
              
                  
                    December 17, 2010,  6:41pm
                   
                   
              5 
               
             
            
              Philip Hallstrom wrote in post #969122: 
ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::PGconn
 
Try the 'pg' gem.
 
I just installed it. Same result.
I'm not sure my gem is installing correctly, though - or if there is
something else needed. Note the following:
   irb(main):001:0> require 'pg'
   => true
   irb(main):002:0> cn = PGconn.open(:dbname => 'movies')
   NameError: uninitialized constant PGconn
     from (irb):2
I really do appreciate this help.
             
            
               
               
               
            
            
           
          
            
              
                11155  
                (-- --)
               
              
                  
                    December 17, 2010,  8:50pm
                   
                   
              6 
               
             
            
              Michael Satterwhite wrote in post #969123: 
Philip Hallstrom wrote in post #969122: 
ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::PGconn
 
Try the 'pg' gem.
 
I just installed it. Same result.
I'm not sure my gem is installing correctly, though - or if there is
something else needed. Note the following:
   irb(main):001:0> require 'pg'
   => true
   irb(main):002:0> cn = PGconn.open(:dbname => 'movies')
   NameError: uninitialized constant PGconn
     from (irb):2
 
That is strange. Maybe try to check which constants where added
when you execute the "require 'pg'" command ?
$ irb
ruby-1.9.2-p0 > c = Object.constants ; nil #=> nil (remember constants)
ruby-1.9.2-p0 > require 'pg' #=> true
ruby-1.9.2-p0 > Object.constants - c # which constants where added?
=> [:ConditionVariable, :Queue, :SizedQueue, :Etc, :RbConfig, :Config,
:CROSS_COMPILING, :Date, :Pathname, :PGError, :PGconn, :PGresult]
ruby-1.9.2-p0 > PGconn #=> PGconn (constant is defined )
ruby-1.9.2-p0 > cn = PGconn.open(:dbname => 'movies')
PGError: could not connect to server: No such file or directory
...
HTH,
Peter
             
            
               
               
               
            
            
           
          
            
              
                11155  
                (-- --)
               
              
                  
                    December 17, 2010,  9:57pm
                   
                   
              7 
               
             
            
              Peter Vandenabeele wrote in post #969157: 
That is strange. Maybe try to check which constants where added
when you execute the "require 'pg'" command ?
$ irb
ruby-1.9.2-p0 > c = Object.constants ; nil #=> nil (remember constants)
ruby-1.9.2-p0 > require 'pg' #=> true
ruby-1.9.2-p0 > Object.constants - c # which constants where added?
=> [:ConditionVariable, :Queue, :SizedQueue, :Etc, :RbConfig, :Config,
:CROSS_COMPILING, :Date, :Pathname, :PGError, :PGconn, :PGresult]
ruby-1.9.2-p0 > PGconn #=> PGconn (constant is defined )
ruby-1.9.2-p0 > cn = PGconn.open(:dbname => 'movies')
PGError: could not connect to server: No such file or directory
...
HTH,
Peter
 
First, I like your way of checking the constants. Being dense, I did
that manually when I had to - thanks much!
Now, something is DEFINITELY wrong. Here is the result of my run:
irb(main):001:0>c = Object.constants
   ---whole bunch of constants displayed ---
irb(main):002:0> require 'pg'
=> true
irb(main):003:0> Object.constants - c
=> 
What in heaven's name could cause this?
---Michael
             
            
               
               
               
            
            
           
          
            
              
                11155  
                (-- --)
               
              
                  
                    December 17, 2010, 10:04pm
                   
                   
              8 
               
             
            
              Michael Satterwhite wrote in post #969166: 
irb(main):001:0>c = Object.constants
   ---whole bunch of constants displayed ---
irb(main):002:0> require 'pg'
=> true
irb(main):003:0> Object.constants - c
=> 
What in heaven's name could cause this?
---Michael
 
More information:
I just uninstalled gem 'pg'. I then executed the following:
irb
irb(main):001:0> require 'pg'
=> true
In other words, it is still finding 'pg' after uninstalling the gem.
That's likely the problem. How can I find out where this is coming from
so I can get rid of it and reinstall pg?
As always, thanks to you experts.
             
            
               
               
               
            
            
           
          
            
              
                11155  
                (-- --)
               
              
                  
                    December 17, 2010, 10:28pm
                   
                   
              9 
               
             
            
              Michael Satterwhite wrote in post #969123: 
Philip Hallstrom wrote in post #969122: 
ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::PGconn
 
Try the 'pg' gem.
 
I just installed it. Same result.
I'm not sure my gem is installing correctly, though - or if there is
something else needed. Note the following:
   irb(main):001:0> require 'pg'
   => true
   irb(main):002:0> cn = PGconn.open(:dbname => 'movies')
   NameError: uninitialized constant PGconn
     from (irb):2
 
Actually ... are you using ruby 1.8.x ?
Is that line
  irb(main):001> require 'pg'
really your first line in the irb session ?
Should you not do
  require 'rubygems'
first ?  (IIRC, required in 1.8.x but no longer in 1.9.x)
My previous test was on ruby 1.9.2 and may have confused
both of us (sorry for that ...).
In ruby 1.8.7 (system ruby), I see this:
peterv@ASUS:~$ rvm use
Now using system ruby.  # which 1.8.7.249-2 on Ubuntu 10.04
peterv@ASUS:~$ gem list | grep pg
pg (0.10.0)
peterv@ASUS:~$ irb
irb(main):001:0> require 'pg' # should NOT work yet
LoadError: no such file to load -- pg
  from (irb):1:in `require'
  from (irb):1
irb(main):002:0> require 'rubygems'
=> true
irb(main):003:0> require 'pg'
=> true
irb(main):004:0> Object.constants.grep(/PG/)
=> ["PGconn", "PGresult", "PGError"]
HTH,
Peter
             
            
               
               
               
            
            
           
          
            
              
                11155  
                (-- --)
               
              
                  
                    December 17, 2010, 10:39pm
                   
                   
              10 
               
             
            
              Peter Vandenabeele wrote in post #969175: 
Michael Satterwhite wrote in post #969123: 
Philip Hallstrom wrote in post #969122: 
ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::PGconn
 
Try the 'pg' gem.
 
I just installed it. Same result.
I'm not sure my gem is installing correctly, though - or if there is
something else needed. Note the following:
   irb(main):001:0> require 'pg'
   => true
   irb(main):002:0> cn = PGconn.open(:dbname => 'movies')
   NameError: uninitialized constant PGconn
     from (irb):2
 
Actually ... are you using ruby 1.8.x ?
Is that line
  irb(main):001> require 'pg'
really your first line in the irb session ?
Should you not do
  require 'rubygems'
first ?  (IIRC, required in 1.8.x but no longer in 1.9.x)
 
I have the environment variable
   RUBYOPT=rubygems
set. This causes 1.8.x to automatically set rubygems as in 1.9.x.
             
            
               
               
               
            
            
           
          
            
              
                11155  
                (-- --)
               
              
                  
                    December 17, 2010, 10:47pm
                   
                   
              11 
               
             
            
              Michael Satterwhite wrote in post #969181: 
Peter Vandenabeele wrote in post #969175: 
Michael Satterwhite wrote in post #969123: 
 
 
...
I just installed it. Same result.
I'm not sure my gem is installing correctly, though - or if there is
something else needed. Note the following:
   irb(main):001:0> require 'pg'
   => true
   irb(main):002:0> cn = PGconn.open(:dbname => 'movies')
   NameError: uninitialized constant PGconn
     from (irb):2
 
Actually ... are you using ruby 1.8.x ?
Is that line
  irb(main):001> require 'pg'
really your first line in the irb session ?
Should you not do
  require 'rubygems'
first ?  (IIRC, required in 1.8.x but no longer in 1.9.x)
 
I have the environment variable
   RUBYOPT=rubygems
set. This causes 1.8.x to automatically set rubygems as in 1.9.x.
 
Ah, thanks for that info.
It works that way here too.
peterv@ASUS:~$ export RUBYOPT=rubygems
peterv@ASUS:~$ echo $RUBYOPT
rubygems
peterv@ASUS:~$ irb
irb(main):001:0> require 'pg'
=> true
irb(main):002:0> Object.constants.grep(/PG/)
=> ["PGconn", "PGresult", "PGError"]
Peter
             
            
               
               
               
            
            
           
          
            
              
                11155  
                (-- --)
               
              
                  
                    December 17, 2010, 10:52pm
                   
                   
              12 
               
             
            
              Peter Vandenabeele wrote in post #969183: 
Ah, thanks for that info.
It works that way here too.
peterv@ASUS:~$ export RUBYOPT=rubygems
peterv@ASUS:~$ echo $RUBYOPT
rubygems
peterv@ASUS:~$ irb
irb(main):001:0> require 'pg'
=> true
irb(main):002:0> Object.constants.grep(/PG/)
=> ["PGconn", "PGresult", "PGError"]
 
Actually, yours works much better ... mine isn't working, remember. <g>
Any idea of how I can find where that bogus 'pg' is coming from? The gem
isn't installed anymore, but "require 'pg'" still returns true - loading
no constants.
             
            
               
               
               
            
            
           
          
            
              
                11155  
                (-- --)
               
              
                  
                    December 17, 2010, 11:03pm
                   
                   
              13 
               
             
            
              Michael Satterwhite wrote in post #969184: 
Peter Vandenabeele wrote in post #969183: 
Ah, thanks for that info.
It works that way here too.
peterv@ASUS:~$ export RUBYOPT=rubygems
peterv@ASUS:~$ echo $RUBYOPT
rubygems
peterv@ASUS:~$ irb
irb(main):001:0> require 'pg'
=> true
irb(main):002:0> Object.constants.grep(/PG/)
=> ["PGconn", "PGresult", "PGError"]
 
Actually, yours works much better ... mine isn't working, remember. <g>
Any idea of how I can find where that bogus 'pg' is coming from? The gem
isn't installed anymore, but "require 'pg'" still returns true - loading
no constants.
 
Aha, this might hint where your seemingly
succeeded require is getting its input ?
After the require, the $LOAD_PATH has grown !
irb(main):004:0> puts $LOAD_PATH
/usr/local/lib/site_ruby/1.8
/usr/local/lib/site_ruby/1.8/i486-linux
/usr/local/lib/site_ruby/1.8/i386-linux
/usr/local/lib/site_ruby
/usr/lib/ruby/vendor_ruby/1.8
/usr/lib/ruby/vendor_ruby/1.8/i486-linux
/usr/lib/ruby/vendor_ruby
/usr/lib/ruby/1.8
/usr/lib/ruby/1.8/i486-linux
/usr/lib/ruby/1.8/i386-linux
.
=> nil
irb(main):005:0> require 'pg'
=> true
irb(main):006:0> puts $LOAD_PATH
/usr/lib/ruby/gems/1.8/gems/pg-0.10.0/bin
/usr/lib/ruby/gems/1.8/gems/pg-0.10.0/lib
/usr/lib/ruby/gems/1.8/gems/pg-0.10.0/ext
/usr/local/lib/site_ruby/1.8
/usr/local/lib/site_ruby/1.8/i486-linux
/usr/local/lib/site_ruby/1.8/i386-linux
/usr/local/lib/site_ruby
/usr/lib/ruby/vendor_ruby/1.8
/usr/lib/ruby/vendor_ruby/1.8/i486-linux
/usr/lib/ruby/vendor_ruby
/usr/lib/ruby/1.8
/usr/lib/ruby/1.8/i486-linux
/usr/lib/ruby/1.8/i386-linux
.
=> nil
Also, I had ran those 2 on my machine here (from the root directory):
peterv@ASUS:/$ find . -name 'pg.rb' 2>/dev/null
./home/peterv/.rvm/gems/ruby-1.9.2-p0/gems/pg-0.10.0/lib/pg.rb
./usr/lib/ruby/gems/1.8/gems/pg-0.10.0/lib/pg.rb
peterv@ASUS:/$ find . -name 'pg.so' 2>/dev/null
and that seems correct:
* 1 time pg.rb in .rvm/gems for 1.9.2 (from the first example I showed)
* 1 time pg.rb in /user/lib/gems/1.8 ... (system ruby)
no files pg.so found.
A long shot, but you could try that too and compare ...
HTH,
Peter
             
            
               
               
               
            
            
           
          
            
              
                11155  
                (-- --)
               
              
                  
                    December 17, 2010, 11:45pm
                   
                   
              14 
               
             
            
              Peter Vandenabeele wrote in post #969187: 
Michael Satterwhite wrote in post #969184: 
Peter Vandenabeele wrote in post #969183: 
Ah, thanks for that info.
It works that way here too.
peterv@ASUS:~$ export RUBYOPT=rubygems
peterv@ASUS:~$ echo $RUBYOPT
rubygems
peterv@ASUS:~$ irb
irb(main):001:0> require 'pg'
=> true
irb(main):002:0> Object.constants.grep(/PG/)
=> ["PGconn", "PGresult", "PGError"]
 
Actually, yours works much better ... mine isn't working, remember. <g>
Any idea of how I can find where that bogus 'pg' is coming from? The gem
isn't installed anymore, but "require 'pg'" still returns true - loading
no constants.
 
Aha, this might hint where your seemingly
succeeded require is getting its input ?
After the require, the $LOAD_PATH has grown !
 
THANK YOU, THANK YOU, THANK YOU!!!!
This piece led me to a rogue gem that I'd installed when I was trying to
get started. The require 'pg' is now giving the proper results and the
test
   rake db:migrate
connects to the database.
I *REALLY* appreciate this!
---Michael