每当我有一个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'
字符串
这是一个非常困难的格式,因为查询总是被切断,我想看到它执行的完整查询,这样我就可以在它遇到的行上得到更好的上下文。
有没有办法查看整个查询?
谢谢你,谢谢
1条答案
按热度按时间siotufzp1#
在任何有问题的AR或AR集合对象上使用
#to_sql
。例如,在你的例子中,你可能使用
User.all.to_sql
,你可能需要在它前面加上puts
,因为字符串将被转义。不过,我怀疑您需要深入研究BreakerScoresJob的initialize方法,并在那里执行
to_sql
调用(抱歉,这里没有足够的代码来帮助您)。