【发布时间】:2013-12-29 17:00:52
【问题描述】:
我收到 Heroku 的电子邮件,说我的 Postgres DB 中有太多行。
如何查看每个表中有多少行(以便我可以优先删除)?
【问题讨论】:
标签: ruby-on-rails postgresql activerecord heroku
我收到 Heroku 的电子邮件,说我的 Postgres DB 中有太多行。
如何查看每个表中有多少行(以便我可以优先删除)?
【问题讨论】:
标签: ruby-on-rails postgresql activerecord heroku
更好的看待这个的方法可能是:
虽然它可能与 Heroku 给出的数字不完全匹配(可能有点低),并且可能有一些额外的东西(不是模型),但出于实际目的,这是最好的选择,它避免了使用SQL。
ActiveRecord::Base.descendants.map { |d| [d.all.size, d.name] }.sort
ActiveRecord::Base.descendants 是获取所有 AR 模型的快捷方式。这用于创建包含[number of records, model name] 的数组数组,以允许进行简单的字典排序。这应该足以快速确定所有行的去向。
【讨论】:
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
【讨论】: