PostgreSQL如何在续集中使用连接字符串

时间:2018-11-19 19:31:56

标签: ruby postgresql sequel

我想使用形式为

的连接字符串连接到PostgreSQL数据库

host=localhost user=x password=y dbname=z

这在传递给psql时可以正常工作

$ psql "host=localhost user=x password=y dbname=z"

以及传递给PG宝石时

> PG.connect("host=localhost user=x password=y dbname=z")

但是当我尝试将其传递给续集时,它会失败

> Sequel.postgres(constr)
Sequel::DatabaseConnectionError: PG::ConnectionBad: could not connect to server: No such file or directory

如何使续集连接到数据库?

1 个答案:

答案 0 :(得分:0)

您可以使用带有连接信息的字符串,例如:

conn_str = 'postgres://localhost/database_name?user=user&password=password'


DB = Sequel.connect(conn_str)

通过哈希检查how to open connections的续集文档

DB = Sequel.connect(
  adapter: 'postgres',
  host: 'localhost',
  database: 'database_name',
  user: 'database_user',
  password: 'password'
)

那么您应该可以运行:

DB[:table_name].where(:attribute => 5000..10000)

或者您可以直接使用postgres方法:

DB = Sequel.postgres('my_db', :user => 'user', :password => 'password', :host => 'localhost')

检查devhints打开的连接快捷方式