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

时间:2014-05-13 08:36:34

标签: ruby-on-rails rspec rspec-rails

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

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

我发现question与我的问题类似,但目前还没有答案,我也尝试了link的解决方案,但这对我没有任何影响。我打开了我的测试控制台并运行了一些最简单的查询,它运行起来。

5 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

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

"Rake spec" failing most tests, but "rails s" working fine on Diaspora source

答案 2 :(得分:0)

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

我有:

belongs_to :user, class_name: User

应该是:

belongs_to :user, class_name: 'User'

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

答案 3 :(得分:0)

可能对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/

答案 4 :(得分:0)

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