gpt4 book ai didi

ruby-on-rails - 销毁一些记录需要非常非常长的时间

转载 作者:行者123 更新时间:2023-11-29 11:56:49 24 4
gpt4 key购买 nike

我有一个 Product 模型,在 Rails 4.2.3 应用程序中 has_many ProductAttributes

Product 有时可以有超过 10,000 个 ProducAttributes。

我需要删除其中一些产品,但是当我对产品调用 destroy 时,需要花费非常非常长的时间。看起来它从 ProductAttribute 获取了一个 ID 列表,然后分别对每个 ID 调用了 delete。

但是当它到达终点时,它只是挂起。我有很多数据要删除,有时我需要这样做。

但我不能让这东西永远挂起来。最终我不得不执行 Ctrl-C,之后我看到 Rollback 发生了。

我的问题是,它到底在做什么?为什么我不能从应用层可靠地删除大量数据?

最佳答案

我怀疑你使用类似的东西

has_many :product_attributes, dependent: :destroy

您可能想研究使用 dependent: :delete所以 Rails 在单独销毁它们之前不会实例化所有相关记录。

documentation将有更多关于后果的信息(例如,如果回调在依赖模型上执行等)

关于ruby-on-rails - 销毁一些记录需要非常非常长的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31597493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com