Rails,Active Record - 表中的行数

时间:2013-12-29 17:00:53

标签: ruby-on-rails postgresql activerecord heroku

我收到了来自Heroku的电子邮件,说我的Postgres数据库中有太多行。

如何查看每张表中有多少行(因此我可以优先删除)?

2 个答案:

答案 0 :(得分:1)

heroku pg:psql (specify database name here if you have more than one)

然后查看此帖子以获取postgres中的行数

How do you find the row count for all your tables in Postgres

答案 1 :(得分:0)

更好的方法是:

我的每个AR模型都有多少条记录?

虽然它可能与Heroku给出的数字不完全匹配(可能稍低),并且可能有一些额外的东西(不是模型),但是出于实际目的,这是最好的选择,它避免了使用的需要SQL。

ActiveRecord::Base.descendants.map { |d| [d.all.size, d.name] }.sort

说明:

ActiveRecord::Base.descendants是获取所有AR模型的快捷方式。这用于创建包含[number of records, model name]的数组数组,以允许简单的字典排序。这应该足以快速确定所有行的去向。