在Rails/ActiveRecord中命名SQL查询

将 Rails 与 ActiveRecord(和 PostgreSQL)一起使用时,执行“简单”查询会为它们添加一个名称,例如调用

Article.all
# => Article Load (2.6ms)  SELECT "articles".* FROM "articles"

命名查询Article Load。但是,当执行稍微复杂的查询时,不会生成名称,例如

Article.group(:article_group_id).count
# => (1.2ms)  SELECT COUNT(*) AS count_all, "articles"."article_group_id" AS articles_article_group_id FROM "articles" GROUP BY "articles"."article_group_id"

如果使用以下execute方法执行自定义查询,我可以添加一个名称:

ActiveRecord::Base.connection.execute("SELECT * FROM articles", "My custom query name")
# => My custom query name (2.5ms)  SELECT * FROM articles

但是有没有办法将自定义名称添加到使用 ActiveRecord 方法构建的查询中?

如果您想知道为什么:该名称对于所有类型的监控都很有用,例如在 AppSignal 中查看慢查询时。

以上是在Rails/ActiveRecord中命名SQL查询的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>