【问题标题】:Heroku Row Count IncorrectHeroku 行数不正确
【发布时间】:2012-09-23 23:32:14
【问题描述】:

我一直在为我的一个应用程序使用 heroku,但由于行数已超过 10,000 行,它今天被关闭了。

我不明白这个数字是如何得出的,因为 rails 告诉我我的数据库中只有大约 2000 条记录。

运行 pg:info,我看到以下内容:

Plan:        Dev
Status:      available
Connections: 1
PG Version:  9.1.5
Created:     2012-09-25 03:12 UTC
Data Size:   11.0 MB
Tables:      9
Rows:        15686/10000 (Write access revoked)
Fork/Follow: Unavailable

谁能向我解释一下,尽管数据库中只有 2,000 条记录,但我似乎有 15,000 行?

谢谢!

【问题讨论】:

  • 虽然我在 5 分钟前截断了一张表并重新启动了我的应用程序,但我也遇到了同样的情况,它显示“写访问已撤销”,行数不正确。
  • 更新:30 分钟后heroku pg:info 报告正确的记录数。
  • 谢谢!我也建议heroku maintenance:on 更新您的表格或TRUNCATE your_table 然后heroku maintenance:off。它对我来说很完美。 [链接] (devcenter.heroku.com/articles/maintenance-mode)

标签: heroku


【解决方案1】:

只有 Rails 是不够的。 Heroku 有一个不错的 SQL 控制台,您可以通过以下方式访问:

heroku pg:psql YOUR_DB_URL

然后你可以编写这个查询来获得每个表的记录排名:

SELECT schemaname,relname,n_live_tup 
  FROM pg_stat_user_tables 
  ORDER BY n_live_tup DESC;

如果您只需要更新的数字。行数,您可以使用

SELECT sum(n_live_tup) FROM pg_stat_user_tables;

请注意,您可以在配置中同时拥有新的开发计划数据库和旧的共享数据库(通过heroku pg:info 访问它)。您必须插入正确的数据库 url,可能是带有颜色的。

在任何 sql truncateRows 计数之间允许 30 分钟延迟更新。

顺便说一句,在我的情况下,http://heroku.com 上的 Web 控制台已更新为正确的数字。在我的 sql 查询期间。可能是heroku toolbelt 控制台更新,比较慢。

【讨论】:

  • 谢谢 - 原来会话数据库中有大量的行,我没有通过检查我所有的 rails 模型来解决这个问题。很棒的答案:)
【解决方案2】:

我就此联系了 Heroku 支持,他们运行以下命令来获取我的号码...

$ heroku pg:info

【讨论】:

    【解决方案3】:

    30 分钟对我来说还不够,所以我进行了备份并恢复了数据库。然后我的应用重新上线。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-23
      • 2020-10-25
      • 1970-01-01
      • 1970-01-01
      • 2016-02-28
      • 2016-02-20
      • 1970-01-01
      • 2014-05-30
      相关资源
      最近更新 更多