Я пытаюсь заставить Postgre DBI работать с Ruby, и пока не нашел официального ответа, но надеюсь найти здесь помощь ...
Вот код, выдающий ошибку:
#!/usr/bin/ruby
require 'pg'
$maxwidth=12
conn = PGconn.connect("localhost", 5432, '', '', "testdb", "caseyr", "genesrule")
###### DROP ANY EXISTING rocks TABLE ######
begin
res = conn.exec("SELECT id FROM rocks;")
rescue # rocks table doesn't exist -- this is legitimate
else # rocks table exists, so delete it
puts 'DELETING rocks...'
res = conn.exec("DROP TABLE rocks;")
end
###### CREATE AND POPULATE rocks TABLE ######
begin
res = conn.exec("CREATE TABLE rocks (id serial, rockname char(20));")
res = conn.exec("INSERT INTO ROCKS (rockname) values ('Diamond');")
res = conn.exec("INSERT INTO ROCKS (rockname) values ('Ruby');")
res = conn.exec("INSERT INTO ROCKS (rockname) values ('Emerald');")
rescue Pgconn::PGError => e
puts "Error creating and filling rocks table."
puts "Error code: #{e.err}"
puts "Error message: #{e.errstr}"
conn.close() if conn
end
А вот и сообщение об ошибке:
ruby testRocks.rb
DELETING rocks...
NOTICE: CREATE TABLE will create implicit sequence "rocks_id_seq" for serial column "rocks.id"
testRocks.rb:35: uninitialized constant Pgconn (NameError)
Я не уверен в правильности имени класса для использования; Pgconn
было предположение.
Но дальнейшее тестирование показывает, что этот простой тест также не удался:
#!/usr/bin/ruby
require 'postgres'
Что не получается с:
ruby basictest.rb
basictest.rb:2:in `require': no such file to load -- postgres (LoadError)
from basictest.rb:2
Теперь я думаю, что у меня установлен postgres gem:
gem list | grep post
postgres (0.7.9.2008.01.28)
postgres-pr (0.6.3)
Итак, я в растерянности относительно
- у меня установлен правильный драйвер Postgres и установлен DBI?
- почему моя первая тестовая программа не работает?