加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 将多个旧数据库迁移到一个Rails应用程序中

发布时间:2020-12-17 01:58:48 所属栏目:百科 来源:网络整理
导读:我有几个(旧)Drupal站点需要用一个新的Rails应用程序替换.该新网站应该包含所有旧的Drupal内容.旧的Drupal内容部分被破坏(由于近7年的不稳定升级,已停产的模块等).事实上它是Drupal几乎不相关,只是它导致一些不一致,奇怪的命名和严重规范化的表. 需要导入Rai
我有几个(旧)Drupal站点需要用一个新的Rails应用程序替换.该新网站应该包含所有旧的Drupal内容.旧的Drupal内容部分被破坏(由于近7年的不稳定升级,已停产的模块等).事实上它是Drupal几乎不相关,只是它导致一些不一致,奇怪的命名和严重规范化的表.

需要导入Rails应用程序的内容很简单:内容(博客条目),附加文件(图像)和注释.我有两个数据库是“陈旧”(不在生产??中),还有两个正在生产,但允许下载/锁定一段时间(几小时,几天).因此,迁移不需要针对速度进行优化,也不需要完全保存(意味着:我可以放弃在运行迁移时发布的评论)

Rails(3)应用程序主要完成,并且仅使用Active-record约定.

由于存在约束(破坏,不一致的数据库,需要合并的几个数据库),我更喜欢为此编写迁移,而不是将我的新Rails应用程序连接到丑陋,不一致的遗留数据库.

我的问题是:

>是否有任何环境,宝石或工具可以更轻松地导入Rails:例如允许在某些DSL中从旧版本进行简单映射的东西.
>或者更容易在SQL中完全编写我的迁移:SQL查询会将旧数据转换为适合Rails应用程序的结构吗?迁移来自MySQL-> MySQL.
>或者我应该只将Activerecord连接到旧数据库,遍历每一行/结果并运行Object.save!在我的rails应用程序?

解决方法

有趣的是,我在目前的项目中遇到了同样的问题.

我想你应该考虑第二点!

Or is it easier to write my migrations
entirely in SQL: SQL queries that will
turn the old data into the structure
that fits the Rails app? Migrating is
from MySQL->MySQL.

编写SQL迁移以将数据从旧数据库导入新数据库,然后使用新模式!我想你有一个转储SQL文件,其中包含每个旧数据库的INSERT查询列表.

所以这个策略可能是:

>从新架构为旧数据库架构的每个表创建一个SQL视图.
>针对您的视图运行这些INSERT.

首先,我将告诉你关于legacy_data gem的内容,它基本上生成了具有相应验证/关联的所有模型层,但鉴于您已经在Rails应用程序中设置了所有必需的模型,它在您的情况下是无用的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读