0

标题几乎说明了一切,但我会尝试更详细一点。在了解到基于角色的权限是一个“已解决的问题”并且 Rolify 是比我创建的更好的解决方案之前,我基本上创建了自己的基于角色的权限系统。我想用 Rolify 代码替换我的代码,但不断遇到需要我运行的错误

rake db:migrate

然后它只是告诉我数据库中已经存在一个角色表等。我的倾向只是创建一个删除角色表的迁移,但这是正确的做法吗?

4

1 回答 1

0

我的建议是首先使用以下内容来确保实际删除角色表是正确的解决方案。

rake db:migrate:down VERSION=MigrationTimestamp

您始终可以使用“up”而不是“down”运行相同的命令来重新创建表。当然,如果您删除该表,那么您将丢失其中的所有记录。如果需要,请务必备份您的数据。

我个人对此的看法是,如果删除角色表是正确的解决方案,那么实际上只是删除创建角色表的初始迁移以及更新该表的任何迁移。然后,创建一个 rake 任务,仅用于下一个版本以删除角色表。这样,如果其他人将来需要在您的代码库上工作,他们将不会进行创建表的迁移和在启动和运行时删除同一个表的迁移。迁移中发生的事情的历史对于未来的工作并不是真正必要的,只要您记录到授权 gem 的升级已经完成并且结果是您不再需要角色表。

在这个主题上......我使用声明式授权宝石,发现它比 Rolify 更有效。我有一个单独的角色表,它保持完整并且与 DA gem 配合得很好。绝对值得一试。

于 2014-09-30T01:49:35.223 回答