在 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 中清除或实现表的主要内容,如果未能解决你的问题,请参考以下文章

Rails 验证后如何清除表单

即使在清除缓存后,Favicon也未在生产中显示

在 ruby​​ on rails 中创建新表

在 ruby​​ on rails 中使用连接表

在 Ruby on Rails 3 应用程序中实现搜索?

在视图中创建 Ruby on Rails 矩阵表