从现有的password_digest列迁移?

时间:2015-06-15 12:55:40

标签: ruby-on-rails ruby-on-rails-4 devise bcrypt

我有一个包含大量行的自定义User模型。我有一个password_digest列,我想保留。 (它来自has_secure_password

我也想使用Devise数据库authenticatable,但是由于我对Devise的了解有限,我必须使用encrypted_pa​​ssword列。

有没有办法让Devise使用我当前的password_digest进行身份验证,这样我就不会丢失所有用户密码? 如果我添加encrypted_password列,它将是空白的,我绝对不希望它保持这样。

我可能会以错误的方式思考这个问题。什么是解决这个问题的正确方法?

1 个答案:

答案 0 :(得分:3)

只需编写一个迁移来重命名列名称,它就不会丢失您的数据。

 rails g migration ChangeColumnName

这将生成一个迁移文件

class ChangeColumnName < ActiveRecord::Migration
    def change
       rename_column :users, :password_digest, :encrypted_password
    end
end