Speaker: Sugandh Khanna, Drupal Developer, Srijan Tchnlogies
Migrating an entire website from a particular CMS, or even from Drupal 7, onto Drupal 8 can look like a huge task. Traditionally, if we decided to move a website to Drupal 8, we created 100 content types, with their 2000 fields or more, and each field had its own settings and properties. This consumed a lot of time and actual development, that genuinely required logic, got delayed.
But with the three contributed modules: migrate_tool, migrate_upgrade, migrate_plus; switching to Drupal 8 has gotten a whole lot easier. In this webinar, we take a look at how to use these modules to eliminate all the tedious work. We also share some the challenges we faced during site migration and how those were resolved. Join the webinar and become a pro at Drupal 8 migrations.
Who Is This For
-Backend Developers
-Site Builders
-Architects
What's In It For You
- Understand different challenges faced while migrating from Drupal 7 to Drupal 8
- Learn about migrate configurations and its workflow from Drupal 7 to Drupal 8.
- Review some common use cases where complex websites with hundreds of content types were successfully migrated.
For more interesting sessions and to join the webinar community, visit: www.srijan.net/webinars
5. #SrijanWW | @srijan
Definition of Migration:
● Dictionary meaning: Movement
from one part of something to
another.
● In Drupal way: Migration is an
Extract, Transform, Load(ETL)
process.
● Flexible services and innovative
solutions at effective pricing
6. #SrijanWW | @srijan
Earlier approach of Migrations:
● Huge Sites
● Time consuming
● More than 100 content types and 2000
fields.
8. #SrijanWW | @srijan
Can we suggest Drupal 8 right
away:
● for an existing SIMPLE project? -YES-
● for an existing COMPLEX project? -NO-
● for an NEW project? -YES-
9. #SrijanWW | @srijan
Why Migrate
API?
The migrate module provides a
flexible framework for migrating
content into Drupal from other
sources (e.g., when converting a
website from another CMS to
Drupal).
Out-of-the-box, support for creating
core Drupal objects such as nodes,
users, files, terms, and comments are
also included - it can easily be
extended for migrating other types
of content. Content is imported and
rolled back using a bundled web
interface (Migrate UI module) or
included Drush commands.
10. #SrijanWW | @srijan
Migrate API
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.
12. #SrijanWW | @srijan
Migration-Related Contributed Modules
● migrate_upgrade: The Drupal Upgrade contributed module provides the
tools necessary for performing an upgrade from Drupal 7 to drupal 8 --
both a simple user interface as well as drush commands.
● 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.
16. #SrijanWW | @srijan
Executing a Drupal 7 to Drupal 8 migrate Prerequisites:
● PHP5.6 or greater.
● Install Drush 8.x
● A Drupal 7 site database (Source should be localised).
● The very latest version of Drupal 8.
● Having the Migrate Upgrade module downloaded and 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
20. #SrijanWW | @srijan
Magic Drush command
drush migrate-upgrade
--legacy-db-url=mysql://user:pass@12.34.56.78/d6db
--legacy-root=http://myd6site.com
Legacy being the keyword to connect both databases. (explain further in next slide.)
Your database user
name
Your database
password
Your drupal 7
database
22. #SrijanWW | @srijan
If you run drush migrate-status(ms), a hug list of migrations
will appear.
You can review then selectively execute the migrations by
using the following drush commands
#1 drush migrate-import {migrationname}
#2 drush migrate-import --all
23. #SrijanWW | @srijan
Migrate Tools
Drush commands supported include:
● migrate-status - Lists migrations and their status.
● migrate-import - Performs import operations.
● migrate-rollback - Performs rollback operations.
● migrate-stop - Cleanly stops a running operation.
● migrate-reset-status - Sets a migration status to Idle if it gets stuck.
● migrate-messages - Lists any messages associated with a migration import.
24. #SrijanWW | @srijan
Migrations that are not yet
supported:
● Views
● Multilingual content
● custom fields and content types
Migrations that supported:
● Only content, users, taxonomy, blocks,
menus, filter formats.
25. #SrijanWW | @srijan
Known Issues with the Drupal 7 -> 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.