gpt4 book ai didi

ruby - Ruby `PG.connect` gem 中的 `PG::Connection.open` 和 'pg' 有什么区别?

转载 作者:数据小太阳 更新时间:2023-10-29 09:00:59 28 4
gpt4 key购买 nike

来自pg module doc ,似乎连接到 PG 数据库的正确方法是使用:

conn = PG::Connection.open(dbname: 'test')

但是,我发现 other examples在线使用 PG.connect 方法:

conn = PG.connect(dbname: 'testdb', user: 'janbodnar', password: 'pswd37')

这两种连接到 postgresql 数据库的方式有区别吗?如果是,那是什么?一种方法比另一种更好吗?每种方法的缺点/优点是什么?

最佳答案

来自documentation for the PG module itself ,你可以看到 PG.connectPG::Connection.new 的“方便别名”:

def self::connect( *args )
return PG::Connection.new( *args )
end

来自source code of PG::Connection ,也很明显 PG::Connection.openPG::Connection.new 的别名:

void
init_pg_connection()
{

SINGLETON_ALIAS(rb_cPGconn, "open", "new");

}

因此,就连接到数据库的方式而言,这三者实际上是相同的。 PG.connect 增加了一次额外方法调用的开销,因为它在内部调用了 PG::Connection.new

关于ruby - Ruby `PG.connect` gem 中的 `PG::Connection.open` 和 'pg' 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35785565/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com