在Ruby on Rails应用程序中安全地删除用户表

时间:2018-02-20 14:24:38

标签: mysql ruby-on-rails

我正在运行Ruby on Rails应用程序。在此系统中,用户可以根据需要登录和注销。我也使用了宝石设计。我现在意识到我的系统中有很多用户,但大多数用户不再是用户。我可以从系统中删除它们,但我想重新开始。

我的问题是,删除Users表User.delete_all是否安全?然后使用seed.rb作为管理员用户插入自己。然后从系统添加所有用户(新旧)(在系统上添加新用户功能)。

1 个答案:

答案 0 :(得分:0)

如果您在delete_all模型中没有回调等,我认为您正在寻找的是User - 动作。删除表格您想要的是什么,因为您必须重建并重新创建表格。通过删除其中的行,您只需删除内容。

根据您对用户的使用情况,您可以说,删除内容是安全/不安全的。如果用户被保留,并且您要存储密码等,则不应将其清空。

另一方面,如果User实际上是一个"会话"或类似的,你应该可以安全地清空它,因为那样只会"注销& #34;你的用户。

另一个考虑因素是,如果您需要清理用户,可以添加字段last_logged_in或类似字段。保留一段时间(当然,当用户登录时更新它),然后删除任何没有登录的人,例如1个月; User.where("last_logged_in < ?", 1.month.ago).delete_all

我不建议,只是删除内容,不先测试,并确保用户数据通过新登录存储或轻松恢复。或至少他们实际上能够登录而不会感到困惑。此外,请确保处理来自User的任何关系,或者您最终会在其他表格中显示孤立记录。