【问题标题】:Heroku destroy_all 1/2 million rows seems to hangHeroku destroy_all 1/2 百万行似乎挂起
【发布时间】:2015-10-13 15:18:05
【问题描述】:

在 Heroku 上使用 Postgres

在 Heroku 控制台中,当我执行 SiteInfo.destroy_all 时,它似乎挂起。有 1/2 百万行。销毁这些行的最佳方法是什么?我应该只进行迁移以删除表然后重新创建它吗?

根据 cmets,请注意您有回调。我不。我只需要快速轻松地删除表格中的所有这些行。

【问题讨论】:

    标签: ruby-on-rails heroku heroku-postgres


    【解决方案1】:

    你可以这样做

    ActiveRecord::Base.connection.execute("TRUNCATE site_infos")
    

    destroy_all 相比,这会发生得非常快,因为destroy_all 会循环遍历每条记录。

    【讨论】:

    • 完美。以毫秒为单位。
    • 如果您指望回调或依赖销毁功能可能会很糟糕。总是可以做 SiteInfo.find_each.map { |si| si.destroy }
    • @penner,这是真的。但是,由于 OP 正在考虑删除表然后重新创建它,我认为回调不是要求的一部分。
    • 同意,答案很好。把这个留给 Google 员工吧。
    猜你喜欢
    • 1970-01-01
    • 2016-05-15
    • 1970-01-01
    • 2015-06-19
    • 2021-06-02
    • 2012-08-08
    • 1970-01-01
    • 2013-03-11
    • 2014-04-22
    相关资源
    最近更新 更多