ruby&postgres Ruby macOS 环境下连接数据库报错
ruby&postgres Ruby connects to database error in macOS environment
这是我的database.rb
#!/usr/bin/ruby
require 'postgres'
conn = PGconn.connect("localhost", 5432, '', '', "postgres", "postgres", "postgre")
res = conn.exec('select tablename, tableowner from pg_tables')
res.each do |row|
row.each do |column|
print column
(20-column.length).times{print " "}
end
puts
end
可执行文件:
ruby database.rb
Traceback (most recent call last):
11: from database.rb:4:in `<main>'
10: from database.rb:4:in `new'
9: from /Library/Ruby/Gems/2.6.0/gems/postgres-pr-0.7.0/lib/postgres-pr/postgres-compat.rb:28:in `initialize'
8: from /Library/Ruby/Gems/2.6.0/gems/postgres-pr-0.7.0/lib/postgres-pr/postgres-compat.rb:28:in `new'
7: from /Library/Ruby/Gems/2.6.0/gems/postgres-pr-0.7.0/lib/postgres-pr/connection.rb:58:in `initialize'
6: from /Library/Ruby/Gems/2.6.0/gems/postgres-pr-0.7.0/lib/postgres-pr/connection.rb:58:in `loop'
5: from /Library/Ruby/Gems/2.6.0/gems/postgres-pr-0.7.0/lib/postgres-pr/connection.rb:59:in `block in initialize'
4: from /Library/Ruby/Gems/2.6.0/gems/postgres-pr-0.7.0/lib/postgres-pr/message.rb:58:in `read'
3: from /Library/Ruby/Gems/2.6.0/gems/postgres-pr-0.7.0/lib/postgres-pr/message.rb:116:in `create'
2: from /Library/Ruby/Gems/2.6.0/gems/postgres-pr-0.7.0/lib/postgres-pr/message.rb:137:in `parse'
1: from /Library/Ruby/Gems/2.6.0/gems/postgres-pr-0.7.0/lib/postgres-pr/message.rb:82:in `parse'
/Library/Ruby/Gems/2.6.0/gems/postgres-pr-0.7.0/lib/postgres-pr/message.rb:139:in `block in parse': undefined method `auth_type' for #<PostgresPR::UnknownAuthType:0x0000000133830f98> (NoMethodError)
接下来要做什么?
我认为 PGconn 不支持 ''
(空字符串)作为选项和 tty 值。
您是否尝试过将它们设置为 nil:
PGconn.connect("localhost", 5432, nil, nil, "postgres", "postgres", "postgre")
这是我的database.rb
#!/usr/bin/ruby
require 'postgres'
conn = PGconn.connect("localhost", 5432, '', '', "postgres", "postgres", "postgre")
res = conn.exec('select tablename, tableowner from pg_tables')
res.each do |row|
row.each do |column|
print column
(20-column.length).times{print " "}
end
puts
end
可执行文件: ruby database.rb
Traceback (most recent call last):
11: from database.rb:4:in `<main>'
10: from database.rb:4:in `new'
9: from /Library/Ruby/Gems/2.6.0/gems/postgres-pr-0.7.0/lib/postgres-pr/postgres-compat.rb:28:in `initialize'
8: from /Library/Ruby/Gems/2.6.0/gems/postgres-pr-0.7.0/lib/postgres-pr/postgres-compat.rb:28:in `new'
7: from /Library/Ruby/Gems/2.6.0/gems/postgres-pr-0.7.0/lib/postgres-pr/connection.rb:58:in `initialize'
6: from /Library/Ruby/Gems/2.6.0/gems/postgres-pr-0.7.0/lib/postgres-pr/connection.rb:58:in `loop'
5: from /Library/Ruby/Gems/2.6.0/gems/postgres-pr-0.7.0/lib/postgres-pr/connection.rb:59:in `block in initialize'
4: from /Library/Ruby/Gems/2.6.0/gems/postgres-pr-0.7.0/lib/postgres-pr/message.rb:58:in `read'
3: from /Library/Ruby/Gems/2.6.0/gems/postgres-pr-0.7.0/lib/postgres-pr/message.rb:116:in `create'
2: from /Library/Ruby/Gems/2.6.0/gems/postgres-pr-0.7.0/lib/postgres-pr/message.rb:137:in `parse'
1: from /Library/Ruby/Gems/2.6.0/gems/postgres-pr-0.7.0/lib/postgres-pr/message.rb:82:in `parse'
/Library/Ruby/Gems/2.6.0/gems/postgres-pr-0.7.0/lib/postgres-pr/message.rb:139:in `block in parse': undefined method `auth_type' for #<PostgresPR::UnknownAuthType:0x0000000133830f98> (NoMethodError)
接下来要做什么?
我认为 PGconn 不支持 ''
(空字符串)作为选项和 tty 值。
您是否尝试过将它们设置为 nil:
PGconn.connect("localhost", 5432, nil, nil, "postgres", "postgres", "postgre")