【发布时间】:2017-06-27 15:34:21
【问题描述】:
所以我有一个拥有 200 万用户的 Drupal 7 数据库,需要以最少的停机时间迁移到 Drupal 8(目标是一小时)。 Drupal 迁移模块似乎解决了这个问题,但它一次写入一个新行,在我的测试中,4000 个用户 + 相关数据在坦率地说野兽般的 AWS 实例上花费了 20 分钟。外推到完整的数据集,我需要 7 天的时间来运行迁移,而这样的停机时间是不合理的。
我针对 Drupal 核心创建了一个feature request,但我也想看看社区是否有我错过的任何想法。另外,我想就这个问题展开一些讨论。
【问题讨论】:
-
您需要移动整个数据库还是只移动用户?否则,您可以转储必要的表(或整个数据库,但要准备好转储几 GB)。创建一个新数据库,将转储导入新数据库,然后更改站点凭据以使用新数据库。顺便说一句,Drupal 很新,所以这可能都是废话:p
-
用户的存储方式在 Drupal 7 和 Drupal 8 之间发生了变化。每个用户都需要对其进行一些逻辑处理,然后才能将它们放入新的数据库中:)
-
啊,这真是太糟糕了。也许您可以编写自己的迁移脚本?查看迁移模块并编写您自己的脚本。您仍然可以关注我的第一条评论,但不是转储和导入,而是通过脚本读取和输出。
-
我的意思是,这就是我现在正在做的事情。它确实需要我重新实现实体保存逻辑,但作为批量 SQL 请求。我希望有更好的方法。
-
也许有,但我不知道..