BEST PRACTICES
FOR MOVING TO
DRUPAL 9
Today’s Speakers
Jessie Golombiecki
Marketing Manager,
Mediacurrent
Damien McKenna
Community Lead,
Mediacurrent
Matt Wetmore
Director of Web
Operations, Acquia
Ryan Picchini
Director of Product
Marketing, Acquia
— Open source expansion partner
— Focused on Drupal since 2007
— Clients include mid-size businesses to
high-profile global brands
— Team of approximately 90 experts in
development, design, and digital
strategy
— Acquia partner since 2008
MEDIACURRENT
– Drupal founder serves as Acquia CTO
– Creator of the world’s only Open DXP,
built on top of Drupal
– Gartner leader for Digital Experience
Management
– Over 4,000 customers, including 40% of
Fortune 1,000
– 1,100 employees worldwide
ACQUIA
MediaCurrent and Acquia:
Building on each other’s strengths
Together, we build and continually iterate for impact and scale, delivering smart,
open-source solutions that maximize your digital investments.
WHAT IS DRUPAL,
AND WHY SHOULD
YOU CARE?
Blogs | Corporate websites
Drupal is software used to build digital experiences
E-commerce sites | Interactive digital experiences
Portals | Forums | Mobile Apps | Intranets
Resource directories | Social networking sites
1 OUT OF 30sites in the world run on Drupal
35,000+
contributors
45,000+
modules
1.3M+
registered users
on drupal.org
1M+
unique visitors per
month to drupal.org
100%
FREE
3.3%
of the web
About 70% of executives say the
pandemic is likely to accelerate
the pace of their digital
transformation.
— McKinsey
MARKET TRENDS
Brand loyalty and
awareness are more
important than ever.
80%of customers say they would be
more loyal to a brand that showed
they really understand them and
what they were looking for
MARKET TRENDS
Content is the lifeblood
of a buyer’s journey.
Traditional
WCM
Consumer Site
Building
Emerging / Custom
CMS Choices
EXPENSIVE
Traditional CMS Tools
(Sitecore, Adobe, etc.)
Enterprise Ready:
﹣ Workflows, security
and scalability
﹣ Governance
Easy to Use:
– Intuitive interface empowers
non-technical users
– Expedited time to market
LIMITED
Consumer Site
Building Tools
(Wix, Squarespace, etc.)
CUSTOM
Basic Hosting +
Custom Development
(Pantheon, Azure, etc.)
THE BEST OF ALL THREE — IN ONE PLATFORM.
Fully Flexible:
– Exactly what you want
– Customizable
– Connected
WHY IS DRUPAL 9
IMPORTANT?
Drupal 9 is here, and
it’s the easiest upgrade
in a decade*
* from Drupal 8
"The big deal about Drupal 9 is …
it should not be a big deal"
— Dries Buytaert, Creator of Drupal
PATCH =
bug fixes
MINOR =
new features,
deprecate API
MAJOR =
remove
deprecated APIs
Semantic versioning
Drupal 8+ Version History
8.0.0 = new major release
8.0.1 = bug fixes
8.1.0 = new features
8.1.1 = bug fixes
….
8.9.0 = new features
9.0.0 = removal of deprecated APIs
9.0.1 = bug fixes
9.1.0 = new features
….
major.minor.patch
Drupal
7 to 8
Drupal
8 to 9 to 10
1. Check your module inventory for
compatibility with the next major
version.
2. Check your custom-developed
modules for compatibility with the
next major version.
3. Stay up-to-date by implementing
minor Drupal versions, leading up to
next major version release
Preparing while on
current Drupal version (>8)
1. Upgrade modules to versions that
support the next major release
2. Upgrade any custom code for
compatibility with next major
release
3. Perform Drupal Upgrade
Performing upgrade
to next major version:
Staying prepared for future Drupal updates
Which brings us to the point of
today’s presentation...
FROM DRUPAL 6:
— New theme
— New output
— New Views pages
— Rewritten custom
functionality
What to expect when upgrading to Drupal 9
FROM DRUPAL 7:
— New theme
— New output
— New Views pages
— Rewritten custom
functionality
FROM DRUPAL 8:
— Same theme
— Same APIs*
— Same Views
— Same custom
functionality*
Upgrading Drupal 6 & 7
to Drupal 9
Things we know, vs. things we DON’T know
— New theme
— New output
— New Views pages
— Custom functionality
Things we know:
— Missing data migration
— Data migration bugs
Things we don’t know:
BUILD A PLAN
Upgrade steps
0. Define “done”
1. Inventory
2. Preparations
3. Initial migration
4. Drush
5. Review
6. Refine & repeat
7. Done?
— All nodes & terms?
— All products?
— All user-generated content?
— Acceptable data loss?
— No errors?
Step 0: Define “Done”
STANDARD INVENTORY
— Content type pages
— Taxonomy term pages
— Views pages
— Panels pages
— etc.
Step 1: Inventory
CUSTOM FUNCTIONALITY
— Custom modules?
— Custom overrides?
— Custom integrations?
— API keys
How much is still needed?
Step 1: Inventory
Build the Drupal 9 codebase
— Composer?
— Custom install profile
– Contrib modules
– Migrate Drupal UI
— README.txt/.md
Step 2: Preparations
profiles/MYSITE/MYSITE.info.yml
name: MYSITE
type: profile
description: 'Installation profile
for D9 edition of mysite.'
version: 2.0.0-beta1
core_version_requirement: ^8 || ^9
install:
# Drupal core.
- automated_cron
- node
# Contrib modules.
- token
- metatag
themes:
- bartik
- seven
— Install site
— Run migration
— Migration review
— Missing pieces?
— Repeat
Step 3: Initial Migration
Step 4a: Drush
— Remove: Migrate Drupal UI; Add: Migrate Upgrade
— settings.php
$databases['migrate']['default']
— Install site
drush site:install MYSITE
— Migration configuration
drush migrate:upgrade --legacy-db-key='migrate'
— Import
drush migrate:import --group=’migrate_drupal_7’
Step 4a: Drush
Step 4b: Script!
Create an upgrade.sh file
#!/bin/bash
drush site:install
drush migrate:upgrade
drush migrate:import
$> ./upgrade.sh
Step 4b: Script!
#!/bin/bash
# Install the site.
ddev . drush site-install PROFILENAME
--account-name='admin' --account-pass='test'
--db-url="'mysql://db:db@db:3306/db'" -y
# Create the migration configuration.
ddev . drush migrate:upgrade
--legacy-db-key='migrate'
--legacy-root='http://mysite.ddev.site'
--configure-only
# Import the data.
ddev . drush migrate:import
--group='migrate_drupal_7'
#!/bin/bash
# Install the site.
ddev . drush site-install mysite --account-name='admin'
--account-pass='test'
--db-url="'mysql://db:db@db:3306/db'" -y
# Create the migration configuration.
ddev . drush migrate:upgrade --legacy-db-key='migrate'
--legacy-root='http://mysite.ddev.site' --configure-only
# Fails after upgrade_d7_node_complete_gallery.
ddev . drush migrate:import --group='migrate_drupal_7'
# Fails after upgrade_d7_file_private.
ddev . drush migrate:import --group='migrate_drupal_7'
Step 5: Review
— Content
— User data
— Products
— Orders
— Anything missing?
Step 6: Refine
— Fix those node titles!
— Data cleanup?
— Module fixes?
— Module replacements?
Step 7: Done?
— Are all requirements met?
— Is any further work needed?
NEXT STEPS
1. Testing?
2. Automation?
3. Customize migration?
4. Finish configuration
5. Theming & output
More information:
drupal.org/9
slides.com/gaborhojtsy/state-of-drupal9
drupal.org/docs/8/api/migrate-api
TECHNOLOGY
THAT MAKES
YOUR UPGRADE
EVEN EASIER
The Acquia Digital Experience Platform
ACQUIA MIGRATE
Simplify your adoption of D9 with
Acquia IP:
– Analyze: Extract your content &
data from investigate your data
model and optimize your content.
– Re-platform: Leverage pre-built
configurations
– Accelerate: Migrate from Drupal 7
using IP built by Acquia
engineering leaders
ACQUIA SITE STUDIO
A low-code solution only offered by
Acquia:
– Developers create features once
that can be reused by
non-technical users
– Visual, drag and drop, interface to
empower marketers to play a
meaningful role in building your
new site
– Set and reinforce brand standards
across pages and components
ACQUIA CLOUD IDEs
A Drupal environment to write, run
and debug Drupal applications:
– Onboard developers faster and
allow them to quickly maintain
and upgrade your site
– Use an optimized developer
environment that is tuned and
ready for Drupal.
– Easily connect to and manage
your Drupal Cloud instance in the
CLI
Drupal Cloud accelerates the migration
Q&A
Best Practices for Moving to Drupal 9

Best Practices for Moving to Drupal 9

  • 1.
  • 2.
    Today’s Speakers Jessie Golombiecki MarketingManager, Mediacurrent Damien McKenna Community Lead, Mediacurrent Matt Wetmore Director of Web Operations, Acquia Ryan Picchini Director of Product Marketing, Acquia
  • 3.
    — Open sourceexpansion partner — Focused on Drupal since 2007 — Clients include mid-size businesses to high-profile global brands — Team of approximately 90 experts in development, design, and digital strategy — Acquia partner since 2008 MEDIACURRENT – Drupal founder serves as Acquia CTO – Creator of the world’s only Open DXP, built on top of Drupal – Gartner leader for Digital Experience Management – Over 4,000 customers, including 40% of Fortune 1,000 – 1,100 employees worldwide ACQUIA MediaCurrent and Acquia: Building on each other’s strengths Together, we build and continually iterate for impact and scale, delivering smart, open-source solutions that maximize your digital investments.
  • 4.
    WHAT IS DRUPAL, ANDWHY SHOULD YOU CARE?
  • 5.
    Blogs | Corporatewebsites Drupal is software used to build digital experiences E-commerce sites | Interactive digital experiences Portals | Forums | Mobile Apps | Intranets Resource directories | Social networking sites
  • 6.
    1 OUT OF30sites in the world run on Drupal 35,000+ contributors 45,000+ modules 1.3M+ registered users on drupal.org 1M+ unique visitors per month to drupal.org 100% FREE 3.3% of the web
  • 7.
    About 70% ofexecutives say the pandemic is likely to accelerate the pace of their digital transformation. — McKinsey
  • 8.
    MARKET TRENDS Brand loyaltyand awareness are more important than ever. 80%of customers say they would be more loyal to a brand that showed they really understand them and what they were looking for
  • 9.
    MARKET TRENDS Content isthe lifeblood of a buyer’s journey.
  • 10.
  • 11.
    EXPENSIVE Traditional CMS Tools (Sitecore,Adobe, etc.) Enterprise Ready: ﹣ Workflows, security and scalability ﹣ Governance Easy to Use: – Intuitive interface empowers non-technical users – Expedited time to market LIMITED Consumer Site Building Tools (Wix, Squarespace, etc.) CUSTOM Basic Hosting + Custom Development (Pantheon, Azure, etc.) THE BEST OF ALL THREE — IN ONE PLATFORM. Fully Flexible: – Exactly what you want – Customizable – Connected
  • 12.
    WHY IS DRUPAL9 IMPORTANT?
  • 13.
    Drupal 9 ishere, and it’s the easiest upgrade in a decade* * from Drupal 8
  • 14.
    "The big dealabout Drupal 9 is … it should not be a big deal" — Dries Buytaert, Creator of Drupal
  • 15.
    PATCH = bug fixes MINOR= new features, deprecate API MAJOR = remove deprecated APIs Semantic versioning Drupal 8+ Version History 8.0.0 = new major release 8.0.1 = bug fixes 8.1.0 = new features 8.1.1 = bug fixes …. 8.9.0 = new features 9.0.0 = removal of deprecated APIs 9.0.1 = bug fixes 9.1.0 = new features …. major.minor.patch
  • 16.
  • 17.
    1. Check yourmodule inventory for compatibility with the next major version. 2. Check your custom-developed modules for compatibility with the next major version. 3. Stay up-to-date by implementing minor Drupal versions, leading up to next major version release Preparing while on current Drupal version (>8) 1. Upgrade modules to versions that support the next major release 2. Upgrade any custom code for compatibility with next major release 3. Perform Drupal Upgrade Performing upgrade to next major version: Staying prepared for future Drupal updates
  • 18.
    Which brings usto the point of today’s presentation...
  • 19.
    FROM DRUPAL 6: —New theme — New output — New Views pages — Rewritten custom functionality What to expect when upgrading to Drupal 9 FROM DRUPAL 7: — New theme — New output — New Views pages — Rewritten custom functionality FROM DRUPAL 8: — Same theme — Same APIs* — Same Views — Same custom functionality*
  • 20.
    Upgrading Drupal 6& 7 to Drupal 9 Things we know, vs. things we DON’T know
  • 21.
    — New theme —New output — New Views pages — Custom functionality Things we know: — Missing data migration — Data migration bugs Things we don’t know:
  • 22.
    BUILD A PLAN Upgradesteps 0. Define “done” 1. Inventory 2. Preparations 3. Initial migration 4. Drush 5. Review 6. Refine & repeat 7. Done?
  • 23.
    — All nodes& terms? — All products? — All user-generated content? — Acceptable data loss? — No errors? Step 0: Define “Done”
  • 24.
    STANDARD INVENTORY — Contenttype pages — Taxonomy term pages — Views pages — Panels pages — etc. Step 1: Inventory CUSTOM FUNCTIONALITY — Custom modules? — Custom overrides? — Custom integrations? — API keys
  • 25.
    How much isstill needed? Step 1: Inventory
  • 26.
    Build the Drupal9 codebase — Composer? — Custom install profile – Contrib modules – Migrate Drupal UI — README.txt/.md Step 2: Preparations profiles/MYSITE/MYSITE.info.yml name: MYSITE type: profile description: 'Installation profile for D9 edition of mysite.' version: 2.0.0-beta1 core_version_requirement: ^8 || ^9 install: # Drupal core. - automated_cron - node # Contrib modules. - token - metatag themes: - bartik - seven
  • 27.
    — Install site —Run migration — Migration review — Missing pieces? — Repeat Step 3: Initial Migration
  • 28.
    Step 4a: Drush —Remove: Migrate Drupal UI; Add: Migrate Upgrade — settings.php $databases['migrate']['default'] — Install site drush site:install MYSITE — Migration configuration drush migrate:upgrade --legacy-db-key='migrate' — Import drush migrate:import --group=’migrate_drupal_7’
  • 29.
  • 30.
    Step 4b: Script! Createan upgrade.sh file #!/bin/bash drush site:install drush migrate:upgrade drush migrate:import $> ./upgrade.sh
  • 31.
    Step 4b: Script! #!/bin/bash #Install the site. ddev . drush site-install PROFILENAME --account-name='admin' --account-pass='test' --db-url="'mysql://db:db@db:3306/db'" -y # Create the migration configuration. ddev . drush migrate:upgrade --legacy-db-key='migrate' --legacy-root='http://mysite.ddev.site' --configure-only # Import the data. ddev . drush migrate:import --group='migrate_drupal_7' #!/bin/bash # Install the site. ddev . drush site-install mysite --account-name='admin' --account-pass='test' --db-url="'mysql://db:db@db:3306/db'" -y # Create the migration configuration. ddev . drush migrate:upgrade --legacy-db-key='migrate' --legacy-root='http://mysite.ddev.site' --configure-only # Fails after upgrade_d7_node_complete_gallery. ddev . drush migrate:import --group='migrate_drupal_7' # Fails after upgrade_d7_file_private. ddev . drush migrate:import --group='migrate_drupal_7'
  • 32.
    Step 5: Review —Content — User data — Products — Orders — Anything missing?
  • 33.
    Step 6: Refine —Fix those node titles! — Data cleanup? — Module fixes? — Module replacements?
  • 34.
    Step 7: Done? —Are all requirements met? — Is any further work needed?
  • 35.
    NEXT STEPS 1. Testing? 2.Automation? 3. Customize migration? 4. Finish configuration 5. Theming & output
  • 36.
  • 37.
  • 38.
    The Acquia DigitalExperience Platform
  • 39.
    ACQUIA MIGRATE Simplify youradoption of D9 with Acquia IP: – Analyze: Extract your content & data from investigate your data model and optimize your content. – Re-platform: Leverage pre-built configurations – Accelerate: Migrate from Drupal 7 using IP built by Acquia engineering leaders ACQUIA SITE STUDIO A low-code solution only offered by Acquia: – Developers create features once that can be reused by non-technical users – Visual, drag and drop, interface to empower marketers to play a meaningful role in building your new site – Set and reinforce brand standards across pages and components ACQUIA CLOUD IDEs A Drupal environment to write, run and debug Drupal applications: – Onboard developers faster and allow them to quickly maintain and upgrade your site – Use an optimized developer environment that is tuned and ready for Drupal. – Easily connect to and manage your Drupal Cloud instance in the CLI Drupal Cloud accelerates the migration
  • 40.