postgresql 如何在Rails中查看完整的Postgres Query错误?

33qvvth1  于 2023-11-18  发布在  PostgreSQL
关注(0)|答案(1)|浏览(119)

每当我有一个Postgres错误,它转储这样的东西

[4] pry(#<RSpec::ExampleGroups::CreateNewMatchesJob::MultiTenantNamespacing>)> User.all.each { |user| BreakerScoresJob.new.perform(user.id) }
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR:  missing FROM-clause entry for table "identities"
LINE 1: ...ies".* FROM "excelon_auth_identities" WHERE "identitie...
                                                        ^
: SELECT "excelon_auth_identities".* FROM "excelon_auth_identities" WHERE "identities"."external_identity_type" = $1 AND "excelon_auth_identities"."id" IN (2)
from /Users/jeeves/.rvm/gems/ruby-2.2.2@gb/gems/activerecord-4.2.4/lib/active_record/connection_adapters/postgresql_adapter.rb:641:in `prepare'

字符串
这是一个非常困难的格式,因为查询总是被切断,我想看到它执行的完整查询,这样我就可以在它遇到的行上得到更好的上下文。
有没有办法查看整个查询?
谢谢你,谢谢

siotufzp

siotufzp1#

在任何有问题的AR或AR集合对象上使用#to_sql
例如,在你的例子中,你可能使用User.all.to_sql,你可能需要在它前面加上puts,因为字符串将被转义。
不过,我怀疑您需要深入研究BreakerScoresJob的initialize方法,并在那里执行to_sql调用(抱歉,这里没有足够的代码来帮助您)。

相关问题