0

我们在 PG 中遇到了异常。谷歌搜索没有任何结果。

我们代码中触发异常的行是:

 @user = User.new(params[:user])

所以我们认为是在我们的堆栈中的某个地方。我们正在使用 ActiveRecord 3.2.12


    ActiveRecord::StatementInvalid - PG::Error: : SELECT a.attname, format_type(a.atttypid, a.atttypmod),
    pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
    FROM pg_attribute a LEFT JOIN pg_attrdef d
    ON a.attrelid = d.adrelid AND a.attnum = d.adnum
    WHERE a.attrelid = '"users"'::regclass
    AND a.attnum > 0 AND NOT a.attisdropped
    ORDER BY a.attnum
    :
  bundle/ruby/1.9.1/gems/activerecord-3.2.12/lib/active_record/connection_adapters/postgresql_adapter.rb:1153:in `async_exec'
    /bundle/ruby/1.9.1/gems/activerecord-3.2.12/lib/active_record/connection_adapters/postgresql_adapter.rb:1153:in `exec_no_cache'

4

1 回答 1

1

我怀疑 ActiveRecord。看看你的错误信息:

PG::Error: : SELECT

“::”之间的那个空位可能是您的 PostgreSQL 错误消息应该去的地方。

另外-您说它有时有效,而另一些则无效。这不是您对数据库的期望。确保 PostgreSQL 正在记录错误,然后你就可以确定了。

您可能正在查看诸如连接不足、网络问题或 Ruby 中的资源问题之类的问题。不幸的是,看起来 ActiveRecord 正在丢弃错误消息。

于 2013-04-04T16:41:04.597 回答