我想用Rolify替换我自己创建的角色代码但不确定如何处理删除/撤消现有迁移等

时间:2014-09-29 22:19:46

标签: ruby-on-rails rails-activerecord rolify

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

rake db:migrate

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

1 个答案:

答案 0 :(得分:0)

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

rake db:migrate:down VERSION=MigrationTimestamp

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

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

关于这个主题......我使用声明授权gem并发现它比Rolify更有效。我有一个单独的角色表,保持完整,并与D.A.宝石。绝对值得一试。