我有几个(旧的)Drupal 站点需要用一个新的 Rails 应用程序替换。那个新站点应该包含所有旧的 Drupal 内容。旧的 Drupal 内容部分损坏(由于近 7 年的升级、停产的模块等)。它是 Drupal 的事实几乎不相关,只是它会导致一些不一致、奇怪的命名和糟糕的规范化表。
需要导入 Rails 应用程序的内容很简单:内容(博客条目)、附件(图像)和评论。我有两个数据库“陈旧”(不在生产中)和另外两个在生产中,但允许关闭/锁定一段时间(几小时,几天)。因此,迁移不需要针对速度进行优化,或者完全保存(意思是:我可以在运行迁移时放弃发布的评论)
Rails(3) 应用程序已基本完成,并且仅使用 Active-record 约定。
由于限制(损坏的、不一致的数据库、需要合并的几个数据库),我更喜欢为此编写迁移,而不是将我的新 Rails 应用程序连接到丑陋、不一致的遗留数据库。
我的问题是:
- 是否有任何环境、gem 或工具可以使 Rails 中的导入更容易:例如,允许从某些 DSL 中的新旧进行简单映射的东西。
- 或者更容易完全用 SQL 编写我的迁移:SQL 查询会将旧数据转换为适合 Rails 应用程序的结构?迁移是从 MySQL-> MySQL。
- 或者我应该将 Activerecord 连接到旧数据库,遍历每一行/结果并运行 Object.save!在我的 Rails 应用程序中?