Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Drupal6to7Migration
AdelleFrankGeorgiaTech
RockEagle2017
http://adellefrank.com
MeetWebbie theZombie
Webbie outlinesmaintopics:
1. Undead(cartoonzombiewithtools)
2. *Audit(magnifyingglass)3. Clean(broom)4. Practice(targeton
forehead)
Whohereuses…?Drupal(6,7,8,other)?
AnotherCMS?
Planning/Implementingamigration?
Undead:DoNOTdoitlive!• Frequent,
timestampedbackupsofyourfilesanddatabase
• Alwaysusedevelopment,notlivesite
• Duringmigration,planacontentfreezeforlivesite
UndeadBestPractices• Tip:Separatebackupsfor:• Corefiles versusthesitesfolder,and• Database’sstructure versusthedata
• Tip:Changenameofdevelopment’sdatabase• Tool:StaticSitearchivehttp://www.httrack.com• Tool:Staticonlinearchive(forsmallsites)
http://web.archive.org• Moreinformationonbackingup&migrating:• https://www.drupal.org/node/22281• https://www.drupal.org/node/333675
YourNon-LiveBestPractices…orGotchas…orTools
?
AuditalltheThings…andKeepnotes
AuditingRulesofThumb• Non-custom:Checkversion andcompare files
toout-of-the-boxfilesforthatversion• Tool:diff-qr
https://www.unixtutorial.org/2008/06/how-to-compare-directories-in-unix/
• Takenotesoneachaudityoudo(soyoudon’trepeat,andsoyouwillhaveaplanforchangesduringmigration)• Tool:Spreadsheets
Audit:Non-CustomPackages• Library =3rd partypackages(CKEditor)• Module =Plug-in.• Isitenabled? Tool:drush
drush pm-list--format=csv--status=enabledhttps://drushcommands.com/drush-7x/pm/pm-list/
• Notecustommodules.• Theme =DesignorAppearance.• Notecustomtemplates=hintsofspecial
contenttypesordisplays
WhatElseWouldYouAudit?
?
Audit:Users• Users:Accounts,Roles,Permissions• Tool: NativeinterfaceforAdministration
/admin/user/user• Tool:ViewsDataExport
https://www.drupal.org/project/views_data_export• Tool:SQL
https://webdev.iac.gatech.edu/drupal-8-migrationSELECTu.name,count(*)FROM`node_revisions`nrLEFTJOIN`users`uON(u.uid=nr.uid)GROUPBYnr.uid;
• Tool:drush role-list
Audit:URLs• MapnodeidstoURLaliasesandredirects• Absolutevs.relativelinks(inmenus&content)• Checkforbrokenlinks&generatesiteinventory• Tool:Xenu(Windows)
http://home.snafu.de/tilman/xenulink.html• Tool:LinkLint (*nix)
http://www.linklint.org• Tool:SQL(thoughmaybeincomplete)
SELECTsrc,dstFROMurl_alias;
Audit:Contenttypes• Tool:SQL
SELECTtype,COUNT(*)FROM`node`GROUPBYtype;
• Tool:drush evaldrush eval "print_r(array_keys(node_get_types()));"
Audit:Contentinventory• GatherVisitordatafromanalyticssoftware:
Lastvisitdateandnumberoversemester/year• Tool:ExportbelowdatatoCSVwithViewsData
Exportmodule:
• NodeID• Title• Published?• UpdatedDate
• Createddate• URLalias• Author
Audit:Files• Files canbedifficulttoinventoryifnot
managedasaseparateattachmentstoanode(suchaswhenimagesplaceviaatexteditor).
• Tool:SQLSELECT*FROMfilesWHEREstatus =1;
• Tool:Xenuorlinklint (findactuallyusedfiles)• Tool:Commandline(filemodifiedandaccess
dates)
Cleanliness=aSacredBroom
CleanBEFOREyoumigrate.
CleanyourR.O.T.&Prioritize
• Redundant• Outdated• Trivial(Analyticshelpfuldata)
What/Howwouldyouclean?
Clean:Modules,Libraries&Themes
• RemoveDisabled• RemoveUnused• Notecustomizations&theirimportance
Clean:Users&Content• Tool:AdminViews
https://www.drupal.org/project/admin_views• Useearliercontentinventoriestoevaluatefor
R.O.T.• Prioritize(usingAnalyticsandInventory)which
contenttoperformmoredetailedqualityassuranceupon.
Clean:LinksandFiles• Tool:UseSQLtoreplace updatedfilepaths
withincontenthttp://adellefrank.com/blog/how-to-replace-html-drupal-database-phpmyadmin-sql
• Tool:XenuandLinklink (fixbrokenlinks)• Removenon-usedfilesfoundinyourearlier
inventory
PracticeandPlan• BatchimportingXMLfilesfrom
ViewsDataExportsavesmemory(forFeeds).
• Advertiseyourcontentfreezegreatlyinadvance.
• Youshouldnotneedtodoitlive,2zombiesiteswillbesafer.
• Testmigrationmultipletimes.• Migratedependentcontentfirst
(authorsbeforepages).
PlanandPracticeIdeas?
Comments,Questions,ZombieJokes?