先决条件: •友好的命令行( 没有用户界面 ) •PHP 5.4(检查也使用命令行) •git •Drush 7. x(dev)。 •Drupal 6网站(不推荐在生产运行迁移数据库) •最新版本的Drupal 8 •使模块迁移Drupal( drush en migrate_drupal) •确保Drush可以编写config目录。
没有UI,只有Drush
唯一的方法将数据迁移到Drupal8,使用Drupal迁移模块Drush 。 Drush支持的版本是Drupal8 和drupal7.x。 使用Drush迁移你需要最新的版本的drupal,所以 建议通过composer安装Drush 。 有一个UI创建( 迁移升级 ),但它仍然未完成。 这将是一个普通发布版模块,直到Drupal核心包括才算完成。
清单
为了执行迁移,您首先需要创建一个文件(称为manifest)迁移模块操作。 这里要记住的是当创建清单时: •它必须在Drupal的根目录。 •它只是一个文本文件。 •这个名称并不重要,但是类似于manifest.yml名称。 •它包含了各种执行迁移。 •对于所有你想要执行的迁移,您需要包括所有的依赖项的清单。 (各种迁移的依赖性在各自迁移可以找到配置文件,它位于core/modules/migrate_drupal/config/install/)。 •一个完整的清单可以找到所有D6 - > D8迁移 https://drupal.org/node/2221779 •迁移的顺序并不重要,因为迁移模块将重新排序。 •您可以包括评论,通常以#字符开头。 下面是一个示例运行D6用户迁移:
# A D6 user migration, with dependencies.
- d6_filter_format
- d6_user
- d6_user_picture_entity_display
- d6_user_picture_entity_form_display
- d6_user_picture_field
- d6_user_picture_field_instance
- d6_user_role
可以想象,这也将运行其他迁移上,而不仅仅是用户。
执行迁移
drush命令执行迁移:
drush migrate-manifest --legacy-db-url=mysql://:@/
< manifest-name >是清单文件的名称创建的迁移。 路径不是必需的,但是扩展(如果有的话)。 ——db-url
是一个Drupal 6风格数据库URL。 例如: drush migrate-manifest D6Manifest-User。 yml——legacy-db-url = mysql:/ /根:root@127.0.0.1 / d6
注意,这个命令不同于D7 contrib迁移模块。 命令等drush migrate-import
在Drupal 8不能正常运行。 执行命令时,您将会看到一个列表列出的迁移,他们正在处理,如下所示:
Running d6_filter_format
Running d6_user_role
Running d6_user_picture_field
Running d6_user_picture_field_instance
Running d6_user_picture_entity_display
Running d6_user_picture_entity_form_display
Running d6_user