Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to...
Transcript of Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to...
![Page 1: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/1.jpg)
[email protected] [email protected]
Drupal Site Tuneup Vroom! Vroom!
Kristen Pol / [email protected]
![Page 2: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/2.jpg)
[email protected] [email protected]
Me ! Drupal Architect ! 10 years of Drupal! ! [email protected] ! drupal.org/user/8389 ! @kristen_pol
Kristen Pol!
Hook 42! ! hook42.com ! @hook42inc
![Page 4: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/4.jpg)
[email protected] [email protected]
Strategy ! Better performance ! Easier site maintenance ! Easier onboarding ! Better credibility ! Better user experience ! Better editor experience
Why Tuneup?!
![Page 5: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/5.jpg)
[email protected] [email protected]
Strategy ! Users ! Content ! Content types ! Code ! Modules ! Views ! Data ! Files
Make A List!
![Page 6: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/6.jpg)
[email protected] [email protected]
Strategy
! Prioritize ! Slow and steady ! Balance with ongoing
enhancements ! Small changes ! Document
Make A Plan!
![Page 7: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/7.jpg)
[email protected] [email protected]
Strategy
! Track with bug / task tracker ! Beware of Features ! Lots of testing ! Peer review ! Local => Dev => Test => Prod ! BE CAREFUL… YOU ARE
DELETING THINGS!
Make It Happen!
![Page 9: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/9.jpg)
[email protected] [email protected]
Users
! Spambots ! Paid spammers ! Competitors ! Looky-loos ! Testing
Why Spam?!
![Page 10: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/10.jpg)
[email protected] [email protected]
Users
! “Bad” countries ! Last access time ! Bounced emails ! Wrong role ! Other users ! Test email domains ! Manual checking
Identify Spam!
![Page 11: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/11.jpg)
[email protected] [email protected]
Users
! Modules ! Administration Views ! Advanced User ! LoginToboggan ! Inactive User
! Custom solution ! Rules ! Cron + user_delete (and
node_delete)
Remove Spam!
![Page 12: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/12.jpg)
[email protected] [email protected]
Users
! Prevent site access ! IP blocking :/ ! Cloud Flare ! Bad Behavior
! Prevent form submissions ! Botcha, Honeypot, Mollom*,
Spamicide*, Spambot*, etc. ! Hide user/register page
! Send link directly ! Control roles
! Role delay ! Manual role promotion ! Coded role promotion
Reduce Spam!
![Page 14: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/14.jpg)
[email protected] [email protected]
Content
! Nodes, comments, entityform data, etc.
! Similar to users but need a way to mark as spam
Spam!
![Page 15: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/15.jpg)
[email protected] [email protected]
Content
! Spammers ! Multiple submit clicks ! Copy/paste again ! Node clone
Why Duplicates?!
![Page 16: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/16.jpg)
[email protected] [email protected]
Content
! Google Webmaster Tools ! Search Appearance =>
Optimization => HTML Improvements => Duplicate title tags
! Uniqueness module ! Query database ! Mark duplicates
! Taxonomy ! Flag ! Title
Identify Duplicates!
![Page 17: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/17.jpg)
[email protected] [email protected]
Content
! Manual ! Custom view with Views Bulk
Operations ! Automated
! Custom cron code (node_delete)
! Custom rules
Remove Duplicates!
![Page 18: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/18.jpg)
[email protected] [email protected]
Content
! Restrict access ! Prevent multiple button
clicks (jquery) ! Uniqueness module ! Unique Field module ! Workbench Moderation
module
Reduce Duplicates!
![Page 20: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/20.jpg)
[email protected] [email protected]
Content Types
! Requirements changed ! Replaced functionality with
community module ! Content type no longer used ! Field no longer used ! Field needs replacement ! Temporary fields ! Identified fields to delete for
better performance
Why Cruft?!
![Page 21: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/21.jpg)
[email protected] [email protected]
Content Types
! Fields page (admin/reports/fields)
! Talk to client and team ! Research alternative
modules/methods
Identify Cruft!
![Page 22: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/22.jpg)
[email protected] [email protected]
Content Types
! Use grep ! Remove all nodes (or change
node type, if desired, via Node Convert)
! Remove all references in code ! Remove all references from
Views, Rules, Context, etc. ! Delete from Features modules ! Remove via UI or
hook_update_N (see node_type_delete_confirm_submit)
Remove Content Type!
![Page 23: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/23.jpg)
[email protected] [email protected]
Content Types
! Use grep ! Remove all references in
code ! Remove all references from
Views, Rules, Context, etc. ! Delete from Features
modules (field base and field instance)
! Remove via UI or via hook_update_N (field_delete_field) or via drush field-delete
Remove Field!
![Page 24: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/24.jpg)
[email protected] [email protected]
Content Types
! Careful content architecture ! Document content types in
spreadsheets first ! Reuse content types and
fields when it makes sense
Reduce Cruft!
![Page 26: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/26.jpg)
[email protected] [email protected]
Views
! Requirements changed ! View no longer used ! Replaced functionality with
community module ! Identified views to delete or
replace for better performance
Why Cruft?!
![Page 27: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/27.jpg)
[email protected] [email protected]
Views
! Views Usage Audit module ! Use temporarily
! Performance checks ! Manual audit ! Talk to client and team
Identify Cruft!
![Page 28: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/28.jpg)
[email protected] [email protected]
Views
! Use grep ! Remove all references in
code ! Remove all references from
Context, Panels, other Views, etc.
! Delete from Features modules
! Remove via hook_update_N (views_delete_view) or via UI
Remove Cruft!
![Page 29: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/29.jpg)
[email protected] [email protected]
Views
! Careful views architecture ! Add good machine names ! Use view modes ! Reuse views when it makes
sense
Reduce Cruft!
![Page 31: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/31.jpg)
[email protected] [email protected]
Code / Modules
! Modules not uninstalled properly
! Requirements changed ! Code or module no longer
used ! Replaced functionality with
another module ! Identified code to replace for
better performance ! Patch has been applied to
module ! Code has been hacked
Why Cruft?!
![Page 32: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/32.jpg)
[email protected] [email protected]
Code / Modules
! Disabled modules list (admin/modules/uninstall)
! Site Audit module ! Auditor module ! Hacked module ! Review patches file and issue
queues ! Performance checks ! Manual audit
Identify Cruft!
![Page 33: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/33.jpg)
[email protected] [email protected]
Code / Modules
! Remove all references in code ! Delete from Features modules ! Backup prod db ! Uninstall on prod, test, dev,
and local (or on prod and then copy db to test, dev, and local) ! hook_update_N
(hook_uninstall_modules) or UI or drush pm-uninstall
! Remove from git ! Push to prod on next release
Remove Module!
![Page 34: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/34.jpg)
[email protected] [email protected]
Code / Modules
! Make sure patch has been applied to latest release
! Check release notes ! Update module code locally ! Confirm patch is there ! Run update.php or drush
updatedb locally ! Test! ! Remove patch from patches
directory and README file ! Normal dev cycle
Remove Patches!
![Page 35: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/35.jpg)
[email protected] [email protected]
Code / Modules
! Careful code architecture ! Reuse code when it makes sense ! Check module usage and issue
queues ! Think carefully about when to use
community modules vs custom code
! Keep all custom and community patches in directory with README
! Uninstall modules before deleting code
Reduce Cruft!
![Page 37: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/37.jpg)
[email protected] [email protected]
Data / Files
! Modules deleted before uninstalled
! Modules not deleting variables upon uninstall
! Files uploaded again ! Files changed on content
and old files remain on file system
! Someone deleting files ! File migration incomplete or
had errors
Why Cruft?!
![Page 38: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/38.jpg)
[email protected] [email protected]
Data / Files
! Variable Cleanup module ! Audit Files module (issue
queue) ! Manually check database
tables
Identify Cruft!
![Page 39: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/39.jpg)
[email protected] [email protected]
Data / Files
! BE VERY VERY CAREFUL! ! Variable Cleanup module ! Test locally first ! Backup prod db before using ! Only delete variable if you
know what it is and are positive it can be deleted
! TEST TEST TEST!
Remove Crufty Variables!
![Page 40: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/40.jpg)
[email protected] [email protected]
Data / Files
! Uninstall modules before deleting code
! Reuse files with Media module
Reduce Cruft!
![Page 42: Drupal Site Tuneup - Hook 42Uninstall on prod, test, dev, and local (or on prod and then copy db to test, dev, and local) ! hook_update_N (hook_uninstall_modules) or UI or drush pm-uninstall](https://reader034.fdocuments.us/reader034/viewer/2022050216/5f61fd0df5829e7968257a31/html5/thumbnails/42.jpg)
[email protected] [email protected]
Takeaways
! Careful architecture and planning
! Document before implementing
! Reuse when it makes sense ! Keep up-to-date on latest
community modules and Drupal trends
! Think three times about adding anything
! Think four times before naming anything
Reduce Cruft!