How did we uninstall / disable troublesome module in Drupal 8?
Most of the times, module can be uninstalled from the Module Uninstall page (/admin/modules/uninstall) of Drupal 8. We can also use following drush command to uninstall a module,
But as we know, contrib / custom modules are maturing day by day, sometimes we see D7 specific code in uninstall hooks which cause issues during uninstallation of module.
We were having the similar issue. We were not able to uninstall the module from Drush or from Module Uninstall interface as it was throwing errors due to code in hook_uninstall().
The 'acquia_search_multi_subs' module was giving error in our case during uninstall and data in 'config' table looks like below,
drush pm-uninstall module-name
But as we know, contrib / custom modules are maturing day by day, sometimes we see D7 specific code in uninstall hooks which cause issues during uninstallation of module.
We were having the similar issue. We were not able to uninstall the module from Drush or from Module Uninstall interface as it was throwing errors due to code in hook_uninstall().
The 'acquia_search_multi_subs' module was giving error in our case during uninstall and data in 'config' table looks like below,
drush sqlq "select * from config where name='core.extension'"
core.extension a:2:{s:6:"module";a:74:{s:16:"acquia_connector";i:0;s:13:"acquia_search";i:0;s:24:"acquia_search_multi_subs";i:0;s:13:"admin_toolbar";i:0;s:19:"admin_toolbar_tools";i:0;s:5:"block";i:0;s:13:"block_content";i:0;s:10:"breakpoint";i:0;s:8:"ckeditor";i:0;s:6:"coffee";i:0;s:7:"comment";i:0;s:16:"composer_manager";i:0;s:6:"config";i:0;s:7:"contact";i:0;s:15:"contact_storage";i:0;s:10:"contextual";i:0;s:6:"ctools";i:0;s:8:"datetime";i:0;s:5:"dblog";i:0;s:18:"dynamic_page_cache";i:0;s:6:"editor";i:0;s:26:"entity_reference_revisions";i:0;s:6:"facets";i:0;s:5:"field";i:0;s:8:"field_ui";i:0;s:4:"file";i:0;s:6:"filter";i:0;s:5:"image";i:0;s:13:"layout_plugin";i:0;s:4:"link";i:0;s:17:"menu_link_content";i:0;s:7:"menu_ui";i:0;s:7:"metatag";i:0;s:18:"metatag_open_graph";i:0;s:7:"migrate";i:0;s:14:"migrate_drupal";i:0;s:12:"migrate_plus";i:0;s:13:"migrate_tools";i:0;s:15:"migrate_upgrade";i:0;s:4:"node";i:0;s:7:"options";i:0;s:10:"page_cache";i:0;s:12:"page_manager";i:0;s:15:"page_manager_ui";i:0;s:6:"panels";i:0;s:10:"paragraphs";i:0;s:4:"path";i:0;s:9:"quickedit";i:0;s:3:"rdf";i:0;s:11:"rdf_builder";i:0;s:5:"rdfui";i:0;s:16:"responsive_image";i:0;s:10:"search_api";i:0;s:15:"search_api_solr";i:0;s:15:"security_review";i:0;s:9:"sharethis";i:0;s:14:"simple_sitemap";i:0;s:6:"system";i:0;s:8:"taxonomy";i:0;s:9:"telephone";i:0;s:4:"text";i:0;s:5:"token";i:0;s:7:"toolbar";i:0;s:6:"update";i:0;s:4:"user";i:0;s:10:"zzz_common";i:0;s:11:"zzz_migrate";i:0;s:11:"zzz_zipcode";i:0;s:5:"views";i:0;s:8:"views_ui";i:0;s:20:"workbench_moderation";i:0;s:7:"youtube";i:0;s:8:"pathauto";i:1;s:6:"aaazzz";i:1000;}s:5:"theme";a:6:{s:5:"stark";i:0;s:6:"stable";i:0;s:6:"classy";i:0;s:5:"seven";i:0;s:6:"bartik";i:0;s:11:"zzzmagazine";i:0;}}
To uninstall the module, we run following sql statement on d8 database. Basically we removed s:24:"acquia_search_multi_subs";i:0; from 'data' field and reduced the length of the array to 73 in our case.
drush sqlq "update config set data = 'a:2:{s:6:\"module\";a:73:{s:16:\"acquia_connector\";i:0;s:13:\"acquia_search\";i:0;s:13:\"admin_toolbar\";i:0;s:19:\"admin_toolbar_tools\";i:0;s:5:\"block\";i:0;s:13:\"block_content\";i:0;s:10:\"breakpoint\";i:0;s:8:\"ckeditor\";i:0;s:6:\"coffee\";i:0;s:7:\"comment\";i:0;s:16:\"composer_manager\";i:0;s:6:\"config\";i:0;s:7:\"contact\";i:0;s:15:\"contact_storage\";i:0;s:10:\"contextual\";i:0;s:6:\"ctools\";i:0;s:8:\"datetime\";i:0;s:5:\"dblog\";i:0;s:18:\"dynamic_page_cache\";i:0;s:6:\"editor\";i:0;s:26:\"entity_reference_revisions\";i:0;s:6:\"facets\";i:0;s:5:\"field\";i:0;s:8:\"field_ui\";i:0;s:4:\"file\";i:0;s:6:\"filter\";i:0;s:5:\"image\";i:0;s:13:\"layout_plugin\";i:0;s:4:\"link\";i:0;s:17:\"menu_link_content\";i:0;s:7:\"menu_ui\";i:0;s:7:\"metatag\";i:0;s:18:\"metatag_open_graph\";i:0;s:7:\"migrate\";i:0;s:14:\"migrate_drupal\";i:0;s:12:\"migrate_plus\";i:0;s:13:\"migrate_tools\";i:0;s:15:\"migrate_upgrade\";i:0;s:4:\"node\";i:0;s:7:\"options\";i:0;s:10:\"page_cache\";i:0;s:12:\"page_manager\";i:0;s:15:\"page_manager_ui\";i:0;s:6:\"panels\";i:0;s:10:\"paragraphs\";i:0;s:4:\"path\";i:0;s:9:\"quickedit\";i:0;s:3:\"rdf\";i:0;s:11:\"rdf_builder\";i:0;s:5:\"rdfui\";i:0;s:16:\"responsive_image\";i:0;s:10:\"search_api\";i:0;s:15:\"search_api_solr\";i:0;s:15:\"security_review\";i:0;s:9:\"sharethis\";i:0;s:14:\"simple_sitemap\";i:0;s:6:\"system\";i:0;s:8:\"taxonomy\";i:0;s:9:\"telephone\";i:0;s:4:\"text\";i:0;s:5:\"token\";i:0;s:7:\"toolbar\";i:0;s:6:\"update\";i:0;s:4:\"user\";i:0;s:10:\"zzz_common\";i:0;s:11:\"zzz_migrate\";i:0;s:11:\"zzz_zipcode\";i:0;s:5:\"views\";i:0;s:8:\"views_ui\";i:0;s:20:\"workbench_moderation\";i:0;s:7:\"youtube\";i:0;s:8:\"pathauto\";i:1;s:6:\"aaazzz\";i:1000;}s:5:\"theme\";a:6:{s:5:\"stark\";i:0;s:6:\"stable\";i:0;s:6:\"classy\";i:0;s:5:\"seven\";i:0;s:6:\"bartik\";i:0;s:11:\"zzzmagazine\";i:0;}}' where name='core.extension'"
Please make sure to take the backup of the table before executing such commands as if something goes wrong then you won't be able access the site.
Comments