SlideShare a Scribd company logo
Drupal 6 to 7
Migration
Adelle Frank
Georgia Tech
Rock Eagle 2017
http://adellefrank.com
Meet Webbie the Zombie
Webbie outlines main topics:
1. Undead (cartoon zombie
with tools)
2. *Audit (magnifying glass)
3. Clean (broom)
4. Practice (target on
forehead)
Who here uses…?
Drupal (6,7,8, other)?
Another CMS?
Planning/Implementing a migration?
Undead: Do NOT do it live!
• Frequent,
timestamped
backups of your files
and database
• Always use
development, not
live site
• During migration,
plan a content freeze
for live site
Undead Best Practices
• Tip: Separate backups for:
• Core files versus the sites folder, and
• Database’s structure versus the data
• Tip: Change name of development’s database
• Tool: Static Site archive http://www.httrack.com
• Tool: Static online archive (for small sites)
http://web.archive.org
• More information on backing up & migrating:
• https://www.drupal.org/node/22281
• https://www.drupal.org/node/333675
Your Non-Live
Best Practices…
or Gotchas…
or Tools
?
Audit all the Things…and Keep notes
Auditing Rules of Thumb
• Non-custom: Check version and compare files
to out-of-the-box files for that version
• Tool: diff -qr
https://www.unixtutorial.org/2008/06/how-
to-compare-directories-in-unix/
• Take notes on each audit you do (so you don’t
repeat, and so you will have a plan for changes
during migration)
• Tool: Spreadsheets
Audit: Non-Custom Packages
• Library = 3rd party packages (CKEditor)
• Module = Plug-in.
• Is it enabled? Tool: drush
drush pm-list --format=csv --status=enabled
https://drushcommands.com/drush-7x/pm/pm-list/
• Note custom modules.
• Theme = Design or Appearance.
• Note custom templates = hints of special
content types or displays
What Else Would You Audit?
?
Audit: Users
• Users: Accounts, Roles, Permissions
• Tool: Native interface for Administration
/admin/user/user
• Tool: Views Data Export
https://www.drupal.org/project/views_data_export
• Tool: SQL
https://webdev.iac.gatech.edu/drupal-8-migration
SELECT u.name, count(*) FROM `node_revisions` nr
LEFT JOIN `users` u ON (u.uid=nr.uid)
GROUP BY nr.uid;
• Tool: drush role-list
Audit: URLs
• Map node ids to URL aliases and redirects
• Absolute vs. relative links (in menus & content)
• Check for broken links & generate site inventory
• Tool: Xenu (Windows)
http://home.snafu.de/tilman/xenulink.html
• Tool: LinkLint (*nix)
http://www.linklint.org
• Tool: SQL (though may be incomplete)
SELECT src, dst
FROM url_alias;
Audit: Content types
• Tool: SQL
SELECT type, COUNT(*)
FROM `node`
GROUP BY type;
• Tool: drush eval
drush eval "print_r(array_keys(node_get_types()));"
Audit: Content inventory
• Gather Visitor data from analytics software:
Last visit date and number over semester/year
• Tool: Export below data to CSV with Views Data
Export module:
• Node ID
• Title
• Published?
• Updated Date
• Created date
• URL alias
• Author
Audit: Files
• Files can be difficult to inventory if not
managed as a separate attachments to a node
(such as when images place via a text editor).
• Tool: SQL
SELECT *
FROM files
WHERE status = 1;
• Tool: Xenu or linklint (find actually used files)
• Tool: Command line (file modified and access
dates)
Cleanliness = a Sacred Broom
Clean BEFORE you
migrate.
Clean your R.O.T. & Prioritize
• Redundant
• Outdated
• Trivial (Analytics helpful data)
What/How would you clean?
Clean: Modules, Libraries & Themes
• Remove Disabled
• Remove Unused
• Note customizations & their importance
Clean: Users & Content
• Tool: Admin Views
https://www.drupal.org/project/admin_views
• Use earlier content inventories to evaluate for
R.O.T.
• Prioritize (using Analytics and Inventory) which
content to perform more detailed quality
assurance upon.
Clean: Links and Files
• Tool: Use SQL to replace updated file paths
within content
http://adellefrank.com/blog/how-to-replace-
html-drupal-database-phpmyadmin-sql
• Tool: Xenu and Linklink (fix broken links)
• Remove non-used files found in your earlier
inventory
Practice and Plan
• Batch importing XML files from
Views Data Export saves memory
(for Feeds).
• Advertise your content freeze
greatly in advance.
• You should not need to do it live,
2 zombie sites will be safer.
• Test migration multiple times.
• Migrate dependent content first
(authors before pages).
Plan and Practice Ideas?
Comments, Questions,
Zombie Jokes?

More Related Content

What's hot

Data vizualisation: d3.js + sinatra + elasticsearch
Data vizualisation: d3.js + sinatra + elasticsearchData vizualisation: d3.js + sinatra + elasticsearch
Data vizualisation: d3.js + sinatra + elasticsearch
Mathieu Elie
 
U-SQL Meta Data Catalog (SQLBits 2016)
U-SQL Meta Data Catalog (SQLBits 2016)U-SQL Meta Data Catalog (SQLBits 2016)
U-SQL Meta Data Catalog (SQLBits 2016)
Michael Rys
 
Elastic Search
Elastic SearchElastic Search
Elastic Search
Lukas Vlcek
 
02 beginning code first
02   beginning code first02   beginning code first
02 beginning code first
Maxim Shaptala
 
Building an API layer for C* at Coursera
Building an API layer for C* at CourseraBuilding an API layer for C* at Coursera
Building an API layer for C* at Coursera
Daniel Jin Hao Chia
 
Relate
RelateRelate
The Role of Atom/AtomPub in Digital Archive Services at The University of Tex...
The Role of Atom/AtomPub in Digital Archive Services at The University of Tex...The Role of Atom/AtomPub in Digital Archive Services at The University of Tex...
The Role of Atom/AtomPub in Digital Archive Services at The University of Tex...Peter Keane
 
Is the database a solved problem?
Is the database a solved problem?Is the database a solved problem?
Is the database a solved problem?
Kenneth Geisshirt
 
Elastic search apache_solr
Elastic search apache_solrElastic search apache_solr
Elastic search apache_solrmacrochen
 
An introduction to Pincaster
An introduction to PincasterAn introduction to Pincaster
An introduction to Pincaster
Frank Denis
 
Elasticsearch in 15 minutes
Elasticsearch in 15 minutesElasticsearch in 15 minutes
Elasticsearch in 15 minutes
David Pilato
 
Dcm#8 elastic search
Dcm#8  elastic searchDcm#8  elastic search
Dcm#8 elastic search
Ivan Wallarm
 
Scrapy
ScrapyScrapy
Drupal Security from Drupalcamp Bratislava
Drupal Security from Drupalcamp BratislavaDrupal Security from Drupalcamp Bratislava
Drupal Security from Drupalcamp Bratislava
Gábor Hojtsy
 
Using Webservice in iOS
Using Webservice  in iOS Using Webservice  in iOS
Using Webservice in iOS
Mahboob Nur
 
On Again; Off Again - Benjamin Young - ebookcraft 2017
On Again; Off Again - Benjamin Young - ebookcraft 2017On Again; Off Again - Benjamin Young - ebookcraft 2017
On Again; Off Again - Benjamin Young - ebookcraft 2017
BookNet Canada
 
Drupal Security from Drupalcamp Cologne 2009
Drupal Security from Drupalcamp Cologne 2009Drupal Security from Drupalcamp Cologne 2009
Drupal Security from Drupalcamp Cologne 2009
Gábor Hojtsy
 
"TextMining with ElasticSearch", Saskia Vola, CEO at textminers.io
"TextMining with ElasticSearch", Saskia Vola, CEO at textminers.io"TextMining with ElasticSearch", Saskia Vola, CEO at textminers.io
"TextMining with ElasticSearch", Saskia Vola, CEO at textminers.io
Dataconomy Media
 
Tech Gupshup Meetup On MongoDB - 24/06/2016
Tech Gupshup Meetup On MongoDB - 24/06/2016Tech Gupshup Meetup On MongoDB - 24/06/2016
Tech Gupshup Meetup On MongoDB - 24/06/2016
Mukesh Tilokani
 
Big Data Overview Part 1
Big Data Overview Part 1Big Data Overview Part 1
Big Data Overview Part 1
William Simms
 

What's hot (20)

Data vizualisation: d3.js + sinatra + elasticsearch
Data vizualisation: d3.js + sinatra + elasticsearchData vizualisation: d3.js + sinatra + elasticsearch
Data vizualisation: d3.js + sinatra + elasticsearch
 
U-SQL Meta Data Catalog (SQLBits 2016)
U-SQL Meta Data Catalog (SQLBits 2016)U-SQL Meta Data Catalog (SQLBits 2016)
U-SQL Meta Data Catalog (SQLBits 2016)
 
Elastic Search
Elastic SearchElastic Search
Elastic Search
 
02 beginning code first
02   beginning code first02   beginning code first
02 beginning code first
 
Building an API layer for C* at Coursera
Building an API layer for C* at CourseraBuilding an API layer for C* at Coursera
Building an API layer for C* at Coursera
 
Relate
RelateRelate
Relate
 
The Role of Atom/AtomPub in Digital Archive Services at The University of Tex...
The Role of Atom/AtomPub in Digital Archive Services at The University of Tex...The Role of Atom/AtomPub in Digital Archive Services at The University of Tex...
The Role of Atom/AtomPub in Digital Archive Services at The University of Tex...
 
Is the database a solved problem?
Is the database a solved problem?Is the database a solved problem?
Is the database a solved problem?
 
Elastic search apache_solr
Elastic search apache_solrElastic search apache_solr
Elastic search apache_solr
 
An introduction to Pincaster
An introduction to PincasterAn introduction to Pincaster
An introduction to Pincaster
 
Elasticsearch in 15 minutes
Elasticsearch in 15 minutesElasticsearch in 15 minutes
Elasticsearch in 15 minutes
 
Dcm#8 elastic search
Dcm#8  elastic searchDcm#8  elastic search
Dcm#8 elastic search
 
Scrapy
ScrapyScrapy
Scrapy
 
Drupal Security from Drupalcamp Bratislava
Drupal Security from Drupalcamp BratislavaDrupal Security from Drupalcamp Bratislava
Drupal Security from Drupalcamp Bratislava
 
Using Webservice in iOS
Using Webservice  in iOS Using Webservice  in iOS
Using Webservice in iOS
 
On Again; Off Again - Benjamin Young - ebookcraft 2017
On Again; Off Again - Benjamin Young - ebookcraft 2017On Again; Off Again - Benjamin Young - ebookcraft 2017
On Again; Off Again - Benjamin Young - ebookcraft 2017
 
Drupal Security from Drupalcamp Cologne 2009
Drupal Security from Drupalcamp Cologne 2009Drupal Security from Drupalcamp Cologne 2009
Drupal Security from Drupalcamp Cologne 2009
 
"TextMining with ElasticSearch", Saskia Vola, CEO at textminers.io
"TextMining with ElasticSearch", Saskia Vola, CEO at textminers.io"TextMining with ElasticSearch", Saskia Vola, CEO at textminers.io
"TextMining with ElasticSearch", Saskia Vola, CEO at textminers.io
 
Tech Gupshup Meetup On MongoDB - 24/06/2016
Tech Gupshup Meetup On MongoDB - 24/06/2016Tech Gupshup Meetup On MongoDB - 24/06/2016
Tech Gupshup Meetup On MongoDB - 24/06/2016
 
Big Data Overview Part 1
Big Data Overview Part 1Big Data Overview Part 1
Big Data Overview Part 1
 

Similar to Drupal 6 to 7 migration

CNIT 121: 14 Investigating Applications
CNIT 121: 14 Investigating ApplicationsCNIT 121: 14 Investigating Applications
CNIT 121: 14 Investigating Applications
Sam Bowne
 
Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8
Angela Byron
 
Drupal security
Drupal securityDrupal security
Drupal security
Jozef Toth
 
The Web Application Hackers Toolchain
The Web Application Hackers ToolchainThe Web Application Hackers Toolchain
The Web Application Hackers Toolchain
jasonhaddix
 
CamSec Sept 2016 - Tricks to improve web app excel export attacks
CamSec Sept 2016 - Tricks to improve web app excel export attacksCamSec Sept 2016 - Tricks to improve web app excel export attacks
CamSec Sept 2016 - Tricks to improve web app excel export attacks
Jerome Smith
 
Digital Library Software
Digital Library SoftwareDigital Library Software
Doing Drupal security right
Doing Drupal security rightDoing Drupal security right
Doing Drupal security right
Gábor Hojtsy
 
Android development workshop
Android development workshopAndroid development workshop
Android development workshop
Jeff Sonstein
 
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
Phase2
 
On non existent 0-days, stable binary exploits and
On non existent 0-days, stable binary exploits andOn non existent 0-days, stable binary exploits and
On non existent 0-days, stable binary exploits and
Alisa Esage Шевченко
 
Migrate to Drupal 8
Migrate to Drupal 8Migrate to Drupal 8
Migrate to Drupal 8
Claudiu Cristea
 
Migrating to Drupal 8
Migrating to Drupal 8Migrating to Drupal 8
Migrating to Drupal 8Alkuvoima
 
Drupal: an Overview
Drupal: an OverviewDrupal: an Overview
Drupal: an Overview
Matt Weaver
 
Drupal and the semantic web - SemTechBiz 2012
Drupal and the semantic web - SemTechBiz 2012Drupal and the semantic web - SemTechBiz 2012
Drupal and the semantic web - SemTechBiz 2012scorlosquet
 
DrupalCon 2011 Highlight
DrupalCon 2011 HighlightDrupalCon 2011 Highlight
DrupalCon 2011 Highlight
Supakit Kiatrungrit
 
Skillshare - Introduction to Data Scraping
Skillshare - Introduction to Data ScrapingSkillshare - Introduction to Data Scraping
Skillshare - Introduction to Data Scraping
School of Data
 
Esage on non-existent 0-days, stable binary exploits and user interaction
Esage   on non-existent 0-days, stable binary exploits and user interactionEsage   on non-existent 0-days, stable binary exploits and user interaction
Esage on non-existent 0-days, stable binary exploits and user interactionDefconRussia
 
Migrate 140123161042-phpapp02
Migrate 140123161042-phpapp02Migrate 140123161042-phpapp02
Migrate 140123161042-phpapp02Gaurav Varshney
 
Splitgraph: AHL talk
Splitgraph: AHL talkSplitgraph: AHL talk
Splitgraph: AHL talk
Splitgraph
 

Similar to Drupal 6 to 7 migration (20)

CNIT 121: 14 Investigating Applications
CNIT 121: 14 Investigating ApplicationsCNIT 121: 14 Investigating Applications
CNIT 121: 14 Investigating Applications
 
Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8
 
Drupal security
Drupal securityDrupal security
Drupal security
 
The Web Application Hackers Toolchain
The Web Application Hackers ToolchainThe Web Application Hackers Toolchain
The Web Application Hackers Toolchain
 
CamSec Sept 2016 - Tricks to improve web app excel export attacks
CamSec Sept 2016 - Tricks to improve web app excel export attacksCamSec Sept 2016 - Tricks to improve web app excel export attacks
CamSec Sept 2016 - Tricks to improve web app excel export attacks
 
Digital Library Software
Digital Library SoftwareDigital Library Software
Digital Library Software
 
Doing Drupal security right
Doing Drupal security rightDoing Drupal security right
Doing Drupal security right
 
Android development workshop
Android development workshopAndroid development workshop
Android development workshop
 
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
 
On non existent 0-days, stable binary exploits and
On non existent 0-days, stable binary exploits andOn non existent 0-days, stable binary exploits and
On non existent 0-days, stable binary exploits and
 
Migrate to Drupal 8
Migrate to Drupal 8Migrate to Drupal 8
Migrate to Drupal 8
 
Migrating to Drupal 8
Migrating to Drupal 8Migrating to Drupal 8
Migrating to Drupal 8
 
Drupal: an Overview
Drupal: an OverviewDrupal: an Overview
Drupal: an Overview
 
Drupal and the semantic web - SemTechBiz 2012
Drupal and the semantic web - SemTechBiz 2012Drupal and the semantic web - SemTechBiz 2012
Drupal and the semantic web - SemTechBiz 2012
 
DrupalCon 2011 Highlight
DrupalCon 2011 HighlightDrupalCon 2011 Highlight
DrupalCon 2011 Highlight
 
Skillshare - Introduction to Data Scraping
Skillshare - Introduction to Data ScrapingSkillshare - Introduction to Data Scraping
Skillshare - Introduction to Data Scraping
 
Esage on non-existent 0-days, stable binary exploits and user interaction
Esage   on non-existent 0-days, stable binary exploits and user interactionEsage   on non-existent 0-days, stable binary exploits and user interaction
Esage on non-existent 0-days, stable binary exploits and user interaction
 
Migrate 140123161042-phpapp02
Migrate 140123161042-phpapp02Migrate 140123161042-phpapp02
Migrate 140123161042-phpapp02
 
Web Ninja
Web NinjaWeb Ninja
Web Ninja
 
Splitgraph: AHL talk
Splitgraph: AHL talkSplitgraph: AHL talk
Splitgraph: AHL talk
 

More from Adelle Frank

Views can Show that!
Views can Show that!Views can Show that!
Views can Show that!
Adelle Frank
 
Build your Chunks! Explain real life to Drupal in its own Words (at BADCamp 2...
Build your Chunks! Explain real life to Drupal in its own Words (at BADCamp 2...Build your Chunks! Explain real life to Drupal in its own Words (at BADCamp 2...
Build your Chunks! Explain real life to Drupal in its own Words (at BADCamp 2...
Adelle Frank
 
Plan your Chunks! Future-proofing Your Information Architecture with Drupal ...
 Plan your Chunks! Future-proofing Your Information Architecture with Drupal ... Plan your Chunks! Future-proofing Your Information Architecture with Drupal ...
Plan your Chunks! Future-proofing Your Information Architecture with Drupal ...
Adelle Frank
 
Drupal Workgroup: how OIT helps make the GT web community even MORE awesome!
Drupal Workgroup: how OIT helps make the GT web community even MORE awesome! Drupal Workgroup: how OIT helps make the GT web community even MORE awesome!
Drupal Workgroup: how OIT helps make the GT web community even MORE awesome! Adelle Frank
 
Plan your Chunks! Win the Future with Information Architecture NOW
Plan your Chunks! Win the Future with Information Architecture NOWPlan your Chunks! Win the Future with Information Architecture NOW
Plan your Chunks! Win the Future with Information Architecture NOW
Adelle Frank
 
Feeds is my Friend: a Drupal 6 to 7 Migration story
Feeds is my Friend: a Drupal 6 to 7 Migration storyFeeds is my Friend: a Drupal 6 to 7 Migration story
Feeds is my Friend: a Drupal 6 to 7 Migration story
Adelle Frank
 
GT Drupal: Install Script, Profile, and Editor
GT Drupal: Install Script, Profile, and EditorGT Drupal: Install Script, Profile, and Editor
GT Drupal: Install Script, Profile, and Editor
Adelle Frank
 
ViewsWoW! (for Drupal)
ViewsWoW! (for Drupal)ViewsWoW! (for Drupal)
ViewsWoW! (for Drupal)
Adelle Frank
 
Securing Drupal 7: Do not get Hacked or Spammed to death!
Securing Drupal 7: Do not get Hacked or Spammed to death!Securing Drupal 7: Do not get Hacked or Spammed to death!
Securing Drupal 7: Do not get Hacked or Spammed to death!
Adelle Frank
 
Catalyzing Drupal collaboration & coding at your institution
Catalyzing Drupal collaboration & coding at your institutionCatalyzing Drupal collaboration & coding at your institution
Catalyzing Drupal collaboration & coding at your institution
Adelle Frank
 
How to publish your university catalog and class schedules online using the C...
How to publish your university catalog and class schedules online using the C...How to publish your university catalog and class schedules online using the C...
How to publish your university catalog and class schedules online using the C...
Adelle Frank
 

More from Adelle Frank (11)

Views can Show that!
Views can Show that!Views can Show that!
Views can Show that!
 
Build your Chunks! Explain real life to Drupal in its own Words (at BADCamp 2...
Build your Chunks! Explain real life to Drupal in its own Words (at BADCamp 2...Build your Chunks! Explain real life to Drupal in its own Words (at BADCamp 2...
Build your Chunks! Explain real life to Drupal in its own Words (at BADCamp 2...
 
Plan your Chunks! Future-proofing Your Information Architecture with Drupal ...
 Plan your Chunks! Future-proofing Your Information Architecture with Drupal ... Plan your Chunks! Future-proofing Your Information Architecture with Drupal ...
Plan your Chunks! Future-proofing Your Information Architecture with Drupal ...
 
Drupal Workgroup: how OIT helps make the GT web community even MORE awesome!
Drupal Workgroup: how OIT helps make the GT web community even MORE awesome! Drupal Workgroup: how OIT helps make the GT web community even MORE awesome!
Drupal Workgroup: how OIT helps make the GT web community even MORE awesome!
 
Plan your Chunks! Win the Future with Information Architecture NOW
Plan your Chunks! Win the Future with Information Architecture NOWPlan your Chunks! Win the Future with Information Architecture NOW
Plan your Chunks! Win the Future with Information Architecture NOW
 
Feeds is my Friend: a Drupal 6 to 7 Migration story
Feeds is my Friend: a Drupal 6 to 7 Migration storyFeeds is my Friend: a Drupal 6 to 7 Migration story
Feeds is my Friend: a Drupal 6 to 7 Migration story
 
GT Drupal: Install Script, Profile, and Editor
GT Drupal: Install Script, Profile, and EditorGT Drupal: Install Script, Profile, and Editor
GT Drupal: Install Script, Profile, and Editor
 
ViewsWoW! (for Drupal)
ViewsWoW! (for Drupal)ViewsWoW! (for Drupal)
ViewsWoW! (for Drupal)
 
Securing Drupal 7: Do not get Hacked or Spammed to death!
Securing Drupal 7: Do not get Hacked or Spammed to death!Securing Drupal 7: Do not get Hacked or Spammed to death!
Securing Drupal 7: Do not get Hacked or Spammed to death!
 
Catalyzing Drupal collaboration & coding at your institution
Catalyzing Drupal collaboration & coding at your institutionCatalyzing Drupal collaboration & coding at your institution
Catalyzing Drupal collaboration & coding at your institution
 
How to publish your university catalog and class schedules online using the C...
How to publish your university catalog and class schedules online using the C...How to publish your university catalog and class schedules online using the C...
How to publish your university catalog and class schedules online using the C...
 

Recently uploaded

Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 

Recently uploaded (20)

Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 

Drupal 6 to 7 migration

  • 1. Drupal 6 to 7 Migration Adelle Frank Georgia Tech Rock Eagle 2017 http://adellefrank.com
  • 2. Meet Webbie the Zombie Webbie outlines main topics: 1. Undead (cartoon zombie with tools) 2. *Audit (magnifying glass) 3. Clean (broom) 4. Practice (target on forehead)
  • 3. Who here uses…? Drupal (6,7,8, other)? Another CMS? Planning/Implementing a migration?
  • 4. Undead: Do NOT do it live! • Frequent, timestamped backups of your files and database • Always use development, not live site • During migration, plan a content freeze for live site
  • 5. Undead Best Practices • Tip: Separate backups for: • Core files versus the sites folder, and • Database’s structure versus the data • Tip: Change name of development’s database • Tool: Static Site archive http://www.httrack.com • Tool: Static online archive (for small sites) http://web.archive.org • More information on backing up & migrating: • https://www.drupal.org/node/22281 • https://www.drupal.org/node/333675
  • 6. Your Non-Live Best Practices… or Gotchas… or Tools ?
  • 7. Audit all the Things…and Keep notes
  • 8. Auditing Rules of Thumb • Non-custom: Check version and compare files to out-of-the-box files for that version • Tool: diff -qr https://www.unixtutorial.org/2008/06/how- to-compare-directories-in-unix/ • Take notes on each audit you do (so you don’t repeat, and so you will have a plan for changes during migration) • Tool: Spreadsheets
  • 9. Audit: Non-Custom Packages • Library = 3rd party packages (CKEditor) • Module = Plug-in. • Is it enabled? Tool: drush drush pm-list --format=csv --status=enabled https://drushcommands.com/drush-7x/pm/pm-list/ • Note custom modules. • Theme = Design or Appearance. • Note custom templates = hints of special content types or displays
  • 10. What Else Would You Audit? ?
  • 11. Audit: Users • Users: Accounts, Roles, Permissions • Tool: Native interface for Administration /admin/user/user • Tool: Views Data Export https://www.drupal.org/project/views_data_export • Tool: SQL https://webdev.iac.gatech.edu/drupal-8-migration SELECT u.name, count(*) FROM `node_revisions` nr LEFT JOIN `users` u ON (u.uid=nr.uid) GROUP BY nr.uid; • Tool: drush role-list
  • 12. Audit: URLs • Map node ids to URL aliases and redirects • Absolute vs. relative links (in menus & content) • Check for broken links & generate site inventory • Tool: Xenu (Windows) http://home.snafu.de/tilman/xenulink.html • Tool: LinkLint (*nix) http://www.linklint.org • Tool: SQL (though may be incomplete) SELECT src, dst FROM url_alias;
  • 13. Audit: Content types • Tool: SQL SELECT type, COUNT(*) FROM `node` GROUP BY type; • Tool: drush eval drush eval "print_r(array_keys(node_get_types()));"
  • 14. Audit: Content inventory • Gather Visitor data from analytics software: Last visit date and number over semester/year • Tool: Export below data to CSV with Views Data Export module: • Node ID • Title • Published? • Updated Date • Created date • URL alias • Author
  • 15. Audit: Files • Files can be difficult to inventory if not managed as a separate attachments to a node (such as when images place via a text editor). • Tool: SQL SELECT * FROM files WHERE status = 1; • Tool: Xenu or linklint (find actually used files) • Tool: Command line (file modified and access dates)
  • 16. Cleanliness = a Sacred Broom Clean BEFORE you migrate.
  • 17. Clean your R.O.T. & Prioritize • Redundant • Outdated • Trivial (Analytics helpful data)
  • 19. Clean: Modules, Libraries & Themes • Remove Disabled • Remove Unused • Note customizations & their importance
  • 20. Clean: Users & Content • Tool: Admin Views https://www.drupal.org/project/admin_views • Use earlier content inventories to evaluate for R.O.T. • Prioritize (using Analytics and Inventory) which content to perform more detailed quality assurance upon.
  • 21. Clean: Links and Files • Tool: Use SQL to replace updated file paths within content http://adellefrank.com/blog/how-to-replace- html-drupal-database-phpmyadmin-sql • Tool: Xenu and Linklink (fix broken links) • Remove non-used files found in your earlier inventory
  • 22. Practice and Plan • Batch importing XML files from Views Data Export saves memory (for Feeds). • Advertise your content freeze greatly in advance. • You should not need to do it live, 2 zombie sites will be safer. • Test migration multiple times. • Migrate dependent content first (authors before pages).