我一直在使用Authlogic,但现在需要删除它的所有痕迹。我需要做什么?

时间:2010-10-29 09:43:34

标签: ruby-on-rails ruby-on-rails-3 devise authlogic

所以我要从Authlogic切换到Devise。由于我只有几个测试帐户,我认为最好只删除所有Authlogic内容和我的用户表,然后设置Devise。我正在使用Rails 3.除了从我的gemfile中删除authlogic,删除user和user_session模型/表之外,还有什么我需要做的吗?

2 个答案:

答案 0 :(得分:2)

哟,

当对所有模块使用设计时,User表应如下所示:

 id                   | integer                     | not null default nextval('contributors_id_seq'::regclass)
 email                | character varying(255)      | not null default ''::character varying
 encrypted_password   | character varying(128)      | not null default ''::character varying
 password_salt        | character varying(255)      | not null default ''::character varying
 confirmation_token   | character varying(255)      | 
 confirmed_at         | timestamp without time zone | 
 confirmation_sent_at | timestamp without time zone | 
 reset_password_token | character varying(255)      | 
 remember_token       | character varying(255)      | 
 remember_created_at  | timestamp without time zone | 
 sign_in_count        | integer                     | default 0
 current_sign_in_at   | timestamp without time zone | 
 last_sign_in_at      | timestamp without time zone | 
 current_sign_in_ip   | character varying(255)      | 
 last_sign_in_ip      | character varying(255)      | 
 failed_attempts      | integer                     | default 0
 unlock_token         | character varying(255)      | 
 locked_at            | timestamp without time zone | 
 created_at           | timestamp without time zone | 
 updated_at           | timestamp without time zone | 

您必须编写迁移来添加/重命名列。

最棒的是,您可以将默认加密器更改为Authlogic使用的加密器,这样您就可以顺利地迁移所有现有用户......

见: http://github.com/plataformatec/devise/blob/master/lib/devise/encryptors/authlogic_sha512.rb

您可以在设计初始化程序中更改加密器:

config.encryptor = :authlogic_sha512

应该全部:)。

答案 1 :(得分:1)

是的,而且我已经完成了这一点,请注意您不需要删除/删除用户表(显然在生产中您不太可能做的事情!),只需使用迁移添加以上内容领域。根据需要更改加密器,它应该相当平滑。确保正确命名password_salt和encrypted_pa​​ssword字段,或使用迁移重命名它们(或者可能将它们映射到某处,但我没有找到它)。