首页 > 解决方案 > 在 Ruby on Rails 中清除或实现表

问题描述

我有一个比较大的项目,计划对数据库进行重组。(PostgreSQL - 使用 Rails 5.2)。目前有一些表不再工作,或者至少被归类为“无用”或“创建不佳”。在那些“创建错误的表”中,他们引用了确实有效但因此希望给它们一个更好的用途的表。

我一直在网上搜索,对于这个案子的最佳方法,我有严重的分歧意见。

我一直想做什么。

我一直在阅读,我想实现这些数据库,然后删除它们,以防万一有关于已构建内容的历史记录。再说一次,我没有制作这个数据库,重组它们是一项任务。所以我的问题是:

我要完全删除它们吗?

最佳做法是什么?

在我采取行动删除它们之前,我应该知道什么?只能禁用吗?

标签: ruby-on-railspostgresqldatabase-designruby-on-rails-5

解决方案


您应该只是TRUNCATE然后DROP不再使用不再使用的表,以便您可以立即回收存储,如果您只是删除未使用的表,则无需重新创建数据库,这将浪费大量时间并可能增加停机时间。

如果由于某些特定列未使用而需要重新制作表并且它们导致膨胀,那么您将需要创建一个重复表,将所需数据迁移到TRUNCATE现有表中的重复数据并从重复中移回数据表,否则 Postgres 将永远清理存储空间,让您感到臃肿。


推荐阅读