我有一个Ruby on Rails应用程序,订阅了约300封电子邮件。 由于技术原因,我不得不修改数据库的一个很好的部分,如果我保存旧的用户电子邮件和password_digest,我可以在我的新数据库中插入旧用户管理他们的旧密码吗?
要存储密码,请使用以下gem:
gem 'bcrypt'
在每个模型中我都有:
has_secure_password
在迁移中:
class CreateUsers < ActiveRecord::Migration
def change
create_table :users do |t|
t.string :email
t.string :password_digest
...
end
end
end
这允许我通过简单地执行
来保存密码 user = User.find x
user.password = "password"
user.save
对我来说,完美的解决方案是保存当前的电子邮件和password_digest,以便新数据库中的用户具有相同的密码。这可能吗?
答案 0 :(得分:0)
所以你有几种选择。如果您要保持User表结构相同,那么您可以导出用户表的sql转储并将其重新导入到新数据库中,它应该像以前一样工作。
请参阅此回答How to take backup of a single table in a MySQL database?
您还可以将内容导出为CSV,然后编写脚本以将用户信息导回数据库。
我会使用数据库转储解决方案,最重要的是在手之前备份你的整个数据库。