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'可能存在问题pg: '0.18.1' 。 我尝试恢复到0.18.0 ,我相信这个问题已经消失了。

在本地测试之后,我会在回购中打开一个问题。 我在pg repo上添加了这个问题 。

编辑:我错了。 实际上有什么帮助,是安装spring-commands-rspec gem。 我认为最终为我做的是在一个有效的状态下缓存它。 虽然它也可以很容易地将其缓存在它没有的状态。

我不知道问题是否已经链接 – 但是我发现通过使用本地unix套接字文件而不是localhost,问题似乎已经消失了链接问题; 也许它也可以帮到你?

“Rake spec”在大多数测试中失败,但“rails s”在Diaspora源上工作正常

可能与rspec没有任何关系,但为了以防万一,将其丢弃。 我打了好几个星期,对我而言,这是乘客产生新流程的方式。 我只需要添加这个

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

\etc\apache2\mods-available\passenger.conf

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

我已经安装了'pg', '0.20.0' ,降级到0.19.0它对我有用。

我得到了同样的错误,以及一些其他错误,如PG::UnableToSend: socket not open 。 在随机时间看似错误。 我追查它,这实际上是由于一个模型有一个不正确的belongs_to关联。 这可能不适用于您,但希望它可以帮助某人。

我有:

 belongs_to :user, class_name: User 

什么时候应该是:

 belongs_to :user, class_name: 'User' 

不知何故,一条线正在破坏我所有的PG套接字连接。