在 Ruby on Rails 中清除或实现表
Posted
技术标签:
【中文标题】在 Ruby on Rails 中清除或实现表【英文标题】:purge or achieve tables in Ruby on Rails 【发布时间】:2020-10-05 10:27:42 【问题描述】:我有一个比较大的项目,计划对数据库进行重组。 (PostgreSQL - 使用 Rails 5.2)。目前有一些表不再工作,或者至少被归类为“无用”或“创建不佳”。在那些“创建错误的表”中,他们引用了确实有效但因此希望给它们提供更好用途的表。
我一直在网上搜索,对于如何处理此案的最佳方法,我有严重的分歧。
我一直想做的事。
我一直在阅读,我想实现这些数据库,然后删除它们以防万一有关于已构建内容的历史记录。再说一次,我没有制作这个数据库,重组它们是一项任务。所以我的问题是:
我要完全删除它们吗?
最佳做法是什么?
在我采取行动删除它们之前,我应该知道什么?只能禁用吗?
【问题讨论】:
A) 定期备份一切并测试这些备份。 B) 如果可能,重组这些并迁移数据。 C)当且仅当数据无法迁移,或者迁移中可能存在需要稍后更正的错误时,保留原始表单。 D)删除它们,并在必要时从备份中恢复以修复问题。 【参考方案1】:您应该只TRUNCATE
然后DROP
不再使用的表,这样您就可以立即回收存储,如果您只是删除未使用的表,则无需重新创建数据库,那将是一个巨大的浪费时间加上可能增加的停机时间。
如果您因为某些特定列未使用而需要重新制作表并且它们导致膨胀,那么您将需要创建一个重复表,将所需数据迁移到重复数据TRUNCATE
现有表并移动从重复表中备份数据,否则 Postgres 将花费很长时间来清理存储空间,从而使您变得臃肿。
【讨论】:
以上是关于在 Ruby on Rails 中清除或实现表的主要内容,如果未能解决你的问题,请参考以下文章