Rspec : PG::ConnectionBad: PQsocket() 无法获取套接字描述符



我运行我的rspec,大多数测试都失败了。我得到了相同的错误,这是:

    Failure/Error: Unable to find matching line from backtrace
    ActiveRecord::StatementInvalid:
    PG::ConnectionBad: PQsocket() can't get socket descriptor: BEGIN

我发现了一个与我的问题相似的问题,但是没有答案,我也尝试了这个链接的解决方案,但对我来说没有任何区别。我打开我的测试控制台,运行一些最简单的查询,它工作了。

pg: '0.18.1'可能有问题。我试着恢复到0.18.0,我相信问题已经消失了。

我将在本地测试了一点后在repo上打开一个问题。我把这个问题添加到pg仓库。

编辑:我错了。不过,真正有帮助的是安装spring-commands-rspec gem。我认为它最终为我做的是将它缓存到它工作的状态。尽管它也可以很容易地将它缓存到不需要的状态。

我不知道问题是否链接-但我发现,通过使用本地unix套接字文件而不是localhost,这个问题似乎消失了链接的问题;也许这对你也有帮助?

"耙spec"不通过大多数测试,但"rails";

我得到同样的错误,和其他一些错误,如PG::UnableToSend: socket not open。似乎是随机出错。我查了一下,这实际上是由于一个模型有不适当的belongs_to关联。这可能不适用于你,但希望它能帮助别人。

belongs_to :user, class_name: User

应该是:

belongs_to :user, class_name: 'User'

不知怎么的,这一行破坏了我所有的PG套接字连接。

可能与rspec没有任何关系,但为了以防万一,把它放在那里。我为此奋斗了几个星期,对我来说,这是乘客产生新进程的方式。我只需要加上这个

# Rails -- prepared statements incompatible with faster spawn methods.  
PassengerSpawnMethod conservative

etcapache2mods-availablepassenger.conf

https://www.phusionpassenger.com/library/indepth/ruby/spawn_methods/

我已经安装了'pg', '0.20.0',通过降级到0.19.0,它为我工作。

相关内容

  • 没有找到相关文章

最新更新