Transcript
Page 1: Drupal 6 to Drupal 8 Migration

Preparing to

Migrate D6/7

to D8

Page 2: Drupal 6 to Drupal 8 Migration

Most tempting features of Drupal 8

★ Fastest Drupal ever, out-of-the-box -- BigPipe & Placeholdering.

★ No more cluttering with database-stored configuration -- Makes Deployment Easier with exportable configurations.

★ New theme system based on Twig -- 154 Theme functions has been removed & replaced with TWIG Templates.

★ Symfony2 as a base layer for Drupal 8 -- HttpKernel and HttpFoundation, Yaml, EventDispatcher, ClassLoader etc.

Page 3: Drupal 6 to Drupal 8 Migration
Page 4: Drupal 6 to Drupal 8 Migration

Importance of Analysis & Fore Seeking

★ Update Status(Drupal 5) / Upgrade Status must be used for analysis.

★ Ink is better than the best memory - Documentation

★ A virtual view/workflow of Migrated Website before migration - Fore Seeking

Page 5: Drupal 6 to Drupal 8 Migration

Modules Porting Tracker

Status of the Top 100 Contributed Modules for Drupal 8

★ 19 projects are in core.★ 16 projects have an available non-development release.★ 37 projects have an available development release.★ 28 projects have no available D8 release.

https://contribkanban.com/board/contrib_tracker

Page 6: Drupal 6 to Drupal 8 Migration

Can we suggest Drupal 8 right away :

★ for an existing SIMPLE project? -YES-

★ for an existing COMPLEX project? -NO-

★ for a NEW project? -YES-

Page 7: Drupal 6 to Drupal 8 Migration

Migration Support from Drupal :The system for upgrading Drupal sites has

been completely re-written for Drupal 8

Page 8: Drupal 6 to Drupal 8 Migration

Support for Drupal 6 & Drupal 7 to Drupal 8

★ Drupal 6: core + CCK + Link + Email + Phone + ImageCache modules.

★ Drupal 7: only content, users, taxonomy, blocks, menus, filter formats.

More support for Drupal 7 to Drupal 8 is coming soon.

Page 9: Drupal 6 to Drupal 8 Migration

Migrations that are not yet supported :

★ Views (Drupal 6 & Drupal 7)

★ Multilingual content (i18n Module Drupal 6 & Drupal 7)

★ Node, user, entity references (Drupal 6)

Currently, contributed modules are required to run migrations to Drupal 8

Page 10: Drupal 6 to Drupal 8 Migration

Known Issues with the Drupal 6/7 -> 8

Drupal 6 to Drupal 8

★ Node Types : Default configuration in D6 was to create Story and Page content types but in Drupal 8 the default types are Article and Basic Page (which has a machine name 'page' just like in D6).

★ URL Aliases : When migrating url aliases for a language that is not enabled on the new Drupal 8.

★ Menu UI : The menu_primary_links_source and menu_secondary_links_source variables are not migrated, because they do not have counterparts in Drupal 8.

Page 11: Drupal 6 to Drupal 8 Migration

Known Issues with the Drupal 6/7 -> 8

Drupal 6 to Drupal 8

★ Profile categories : Fields grouped by the Profile module in D6 will not be grouped in D8.

★ Profile field (list selection) : The "allowed values" setting of the resulting field in D8 will be a combination of all selected user values and the current allowed values in D6.

★ Date formats : Only the default, short, medium and long formats are migrated. All other formats default to the fallback format and need to be reconfigured after migration.

★ Text/Input formats : It will be replaced by a null filter which simply displays an empty string.The PHP filter is not supported in Drupal 8 core -- it's very bad practice

Page 12: Drupal 6 to Drupal 8 Migration

Known Issues with the Drupal 6/7 -> 8

Drupal 6 to Drupal 8

★ Views : Views are not yet migrated.

★ Aggregator Categories : Drupal 8 no longer has the concept of aggregator categories and therefore they're not migrated to D8.

★ Allowed protocols : Drupal 8 now stores the protocols in "filter_protocols" container parameter, so in case you had changed the variable "filter_allowed_protocols", enter it into your services.yml file.

Page 13: Drupal 6 to Drupal 8 Migration

Known Issues with the Drupal 6/7 -> 8

Drupal 7 to Drupal 8

★ Blocked IPs : The id column from Drupal 7's ban_ip table is not migrated.

★ Menu UI :The menu_primary_links_source and menu_secondary_links_source variables not migrated, because they do not have counterparts in Drupal 8.

★ PHP Code : It will be replaced with filter_null, which simply displays an empty string. PHP code is not supported in Drupal 8 core -- it's very bad practice.

★ Views : Views are not yet migrated.

Page 14: Drupal 6 to Drupal 8 Migration

A Brief description about Drupal 8 Migration API

Page 15: Drupal 6 to Drupal 8 Migration

Drupal 8 Migration API

Migration is an Extract, Transform, Load (ETL) process.For historical reasons, in the Drupal migration tool :

★ the extract phase is called "source" - Source Plugins,★ the transform phase is called "process" - Process Plugins,★ the load phase is called "destination" - Destination Plugins,★ Migration configuration entities - (IDs,Configs & dependencies) ,★ Migration manifests - drush migrate-manifest

provides a list of migrations.

Page 16: Drupal 6 to Drupal 8 Migration

Migration-Related Modules and Plugins

Page 17: Drupal 6 to Drupal 8 Migration

Migration-Related Core Modules

Drupal 8 is shipped with 2 CORE Modules that provides API for Migration

★ Migrate : This Drupal core module provides the underlying API for migrating configuration and content to Drupal 8.

★ Migrate Drupal : This Drupal core module provides the classes specifically needed to migrate configuration and content from a Drupal site to Drupal 8.

Why 2 Core Modules for Migration ?

Page 18: Drupal 6 to Drupal 8 Migration

Migration-Related Contributed Modules

★ Drupal Upgrade (migrate_upgrade) : The Drupal Upgrade contributed module provides the tools necessary for performing an upgrade from Drupal 6 or Drupal 7 to Drupal 8 — both a simple user interface (at /upgrade) as well as drush commands. There is on-going work to get the UI moved to Drupal core.

★ Migrate Plus : The Migrate Plus contributed module provides optional enhancements, including groups and prepareRow events, to the core Migrate API.

★ Migrate Tools : Part of the Migrate Plus project, this module provides optional drush and UI tools for managing your migrations.

★ Migration plugins : Migration plugins for each core module are located within each module's directory. For example, the migration classes that handle taxonomy vocabularies and terms are located in the core taxonomy module.

Page 19: Drupal 6 to Drupal 8 Migration

Executing a Migration

Page 20: Drupal 6 to Drupal 8 Migration

Executing a Drupal 6/7 to Drupal 8 upgrade

Prerequisites:

★ PHP 5.5.9 or greater.★ Install Drush 8.x★ A Drupal 6 or Drupal 7 site database (it is not recommended to run migrations against

a production database; make a copy) Source should be Localised.★ The very latest version of Drupal 8.★ Having the Migrate Upgrade module downloaded & enabled, which will turn on all the

various dependencies (migrate_upgrade, migrate_drupal, migrate).★ Write permissions for Drush to the config directory. Example sudo chmod -

R a+w sites/default/files/config_*/active

Page 21: Drupal 6 to Drupal 8 Migration

Most important note on Migrating to D8

★ This is different than the way the Migrate worked in Drupal 7 and earlier versions

★ Note that you do not have to create all the content types and fields manually before running this upgrade!

★ The Migrate module will create them as a part of the migration process.

Page 22: Drupal 6 to Drupal 8 Migration

How to use D8 Migrate ? There are 2 Ways#1 Using the Migrate Upgrade Module UI

★ It is Easier but risky as it's still under heavy development, so things may break. There is support team available for migration in case any critical issues.

★ After Installing the Migrate Upgrade module, go to Drupal 8 site's /upgrade page.

★ Now, You will see the home screen with Help Texts.

Page 23: Drupal 6 to Drupal 8 Migration
Page 24: Drupal 6 to Drupal 8 Migration
Page 25: Drupal 6 to Drupal 8 Migration

#2 Using Drush

★ Migrate Upgrade module is shipped with drush commandsDrush command : drush migrate-upgrade --legacy-db-url=mysql://user:password@server/db -- legacy-root=http://localhost/drupal6 .

★ To Add more flavours to Migration, We have Migrate Tools Module which is a part of Migrate Plus Module. Migrate Tools provides more drush commands.

Drush Commands : drush migrate-status (ms) and drush migrate-import (mi)

★ drush migrate-upgrade has 2 set of process

Page 26: Drupal 6 to Drupal 8 Migration

Using Drush Migrate Upgrade & Tools

★ It will generate migrations for your site, based on migrate_drupal's migration templates and your configured source site. For instance, the d6_book migration is only created if the Book module is enabled on both your Drupal 6 and Drupal 8 sites.

★ It executes every created migration, in dependency order.

★ To have more Control on this Drush Command ,Migrate tools comes into play.(--configure- only).

You have to pass --configure-only option to the drush command

drush migrate-upgrade --legacy-db-url=mysql://user:password@server/db --legacy-root=http:

//localhost/drupal6 --configure-only option.

Page 27: Drupal 6 to Drupal 8 Migration

Using Drush Migrate Upgrade & Tools

★ If you run drush migrate-status (ms), a huge list of migrations will appear.

★ You can review then selectively execute the migrations by using the following drush commands

#1 drush migrate-import {migration name}#2 drush migrate-import --all

Note : If you are not able to see the migrated fields in Edit Page as well as in View Page

Check the “Manage Form Display” in each content type and change the fields settings and for view page you can change it “Manage Display” Tab

Page 28: Drupal 6 to Drupal 8 Migration

Brushing up on Drush & Drupal Console

Drush : The Swiss Army Knife for Drupal (More Robust)

Page 29: Drupal 6 to Drupal 8 Migration

Drupal Console

Drupal Console : Sports the modern Symfony Console component, that provides a new object-oriented interface for command line tools, exposing the power of the Symfony framework to script developers. Which is better for Drupal 8. Generates Code & Runs Testing.

Drupal 8 development will get improved and it can be streamlined well, when Drush is used with Drupal Console for D8 development.h ttp://drupalconsole.com/

Page 30: Drupal 6 to Drupal 8 Migration
Page 31: Drupal 6 to Drupal 8 Migration
Page 32: Drupal 6 to Drupal 8 Migration

Contact informationRanga SrinivasanPresident and CTODirect line: (847) 340 7473Email : [email protected]

Contact AddressAmeex Technologies Corp1701E Woodfield Rd, Suite 710Schaumburg, IL 60173


Recommended