2

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

设计中是否有一个钩子我可以使用它来捕获对新数据库的登录失败并检查用户是否存在于旧 MySQL 数据库中,如果找到则迁移用户。

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

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

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

编辑: 目前大约有5000名用户,我们预计其中大约1000 名用户会返回新网站。

4

1 回答 1

3

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

创建自定义加密器,以便用户可以使用现有密码登录。

当用户登录到使用保存的“old_id”触发每个用户的迁移过程的页面时重定向用户。

迁移期结束后,您可以查看 Devise可跟踪列以确定可以清理哪些用户。

于 2012-10-31T03:56:49.600 回答