Drupal6/7升级到Drupal8(一)

一、准备升级

在把你的Drupal6或者Drual7网站升级为Drupal8前,建议采取措施,以确保过程将顺利,并有希望的结果。不同于以往的Drupal核心版本的升级,Drupal8升级的过程不升级源站点。相反,一个新的Drupal实例从源站点拉取配置和内容。尽管升级不改变源站点,建议不要直接在线操作,使用一个在线站点的备份是一个不错的主意,防止任何影响在线在点的操作。

二、必要条件

1、一个全新的Drupal8安装的站点,并且启用Migrate Drupal模块

2、能够从新安装的Drupal8站点访问Drupal6或者Drupal7的数据库

3、能够访问源站点的文件,如果只有public files被使用,可以通过源站点的域名访问,如果private files需要迁移,文件的目录需要从Drupal8站点直接被访问

4、Migrate Upgrade模块在Drupal8站点上被安装并开启。

5、如果你计划从drush升级,你需要安装drush8

6、如果你要从drupal7迁移private files,你必须在运行upgrade前,在setting.php配置drupal8的file_private_path 路径。

三、启用必须的模块

迁移过程不会在drupal8的目标站点安装模块,只迁移在目标站点和源站点都安装了的模块相关的数据。因此,在运行迁移前,你需要在drupal8上启用你想从源站点迁移的数据相关的所有模块,比如,如果你在源站点安装有book模块,并且希望保持图书的层次结构,开始升级过程前,你必须在drupal上启用book模块,同时需要注意,Drupal6/7的模块不需要一对一地与Drupal8上的模块对应。比如,Drupal6和Drupal7的block模块在Drupal8上上是被分开成block和custom block模块。

四、不要配置Drupal8

注意升级的过程会覆盖drupal8上的配置,所以在升级过程完成前,不要在Drupal8上做任何配置。这意味着在运行升级前,你不需要创建内容类型和字段。括号内可能存在错误,感谢龙马兄指出。(Migrate module 将创建这些东西,这和Migrate在Drupal7或者更早的版本上运行不同,在以前版本,运行迁移前,你不得不准备好所有的内容类型和字段。)

继续,你有两个选择运行迁移:

1)使用migrate upgreade interface,这是一个较早的方法,可以通过Drupal8上的用户界面完成操作,但是,它提供更少的控制机会。

2)使用drush,这个更稳定,更快速,允许选择性的迁移,但是需要一个额外的模块,它必须在命令行被执行。