我有几个(旧的)Drupal网站需要用一个新的Rails应用程序替换。该新网站应该包含所有旧的Drupal内容。旧的Drupal内容部分被破坏(由于近7年的不稳定升级,已停产的模块等)。事实上它是Drupal几乎不相关,只是它导致一些不一致,奇怪的命名和严重规范化的表。
需要导入Rails应用程序的内容很简单:内容(博客条目),附加文件(图像)和注释。我有两个数据库是“陈旧”(不在生产中),还有两个正在生产,但允许下载/锁定一段时间(几小时,几天)。因此,迁移不需要针对速度进行优化,也不需要完全保存(意思是:我可以放弃在运行迁移时发布的评论)
Rails(3)应用程序主要完成,并且仅使用Active-record约定。
由于存在约束(破坏,数据库不一致,需要合并的几个数据库),我更喜欢为此编写迁移,而不是将我的新Rails应用程序连接到一个丑陋,不一致的遗留数据库。
我的问题是:
答案 0 :(得分:1)
有趣的案例,我在目前的项目中遇到了同样的问题。
我认为你应该考虑第二点!
或者更容易编写我的迁移 完全在SQL中:SQL查询将会 将旧数据转换为结构 适合Rails应用程序?迁移是 来自MySQL-> MySQL。
编写SQL迁移以将数据从旧数据库导入到新数据库,然后使用新模式!我想你有一个转储SQL文件,其中包含每个旧数据库的INSERT查询列表。
所以这个策略可能是:
首先,我将告诉你关于legacy_data gem的内容,它基本上会生成具有相应验证/关联的所有模型层,但鉴于您已经拥有所有必需的模型,它在您的情况下是无用的在Rails应用程序中设置。