将旧数据库用户迁移到Devise

时间:2012-10-30 21:08:56

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

我们在MySQL中有一个旧的PHP应用程序,我们目前正在Rails和PostgreSQL中重写。 我正在寻找一种在首次登录新系统时逐个迁移用户的方法,以便我们只迁移活跃用户。

设计中是否有钩子可以用来捕获新数据库登录失败并检查用户是否存在于旧MySQL数据库中并在找到时迁移用户。

顺便说一句,Rails应用程序可以访问这两个数据库,迁移代码已经就位,接受旧的username作为输入。

或者我应该只是创建一个单独的_migration_assistant_页面来接受旧的登录并启动迁移?

PS。任何用户都可能有数千个要迁移的数据库记录,因此可能需要一些时间,但我们已经使用PosgreSQL的COPY FROM来加速它(每个帐户大约几秒)。

修改 目前大约有 5000 用户,我们希望他们大约 1000 返回新网站。

1 个答案:

答案 0 :(得分:3)

您可以仅从用户表中迁移所需的数据。在“old_id”列中包含原始主键。

创建custom encryptor,以便用户可以使用现有密码登录。

Redirect用户登录到触发每个用户迁移过程的页面时,会使用已保存的“old_id”。

迁移期过后,您可以查看设计trackable列,以确定可以清理哪些用户。