Ответы:
в документации, на которую вы ссылаетесь, говорится:
Эта команда работает только с модулями, определенными как пакеты Composer.
Если вы не установили модуль через композитор, он не будет работать.
Вы можете отключить его только через bin/magento module:disable SP_Gridthumbs
.
Чтобы удалить модуль, удалите папку SP/Gridthumbs
, удалите запись с модулем = 'SP_Gridthumbs' из таблицы setup_module
и удалите все другие таблицы или записи, добавленные при установке модуля.
Также удалите линию SP_Gridthumbs
изapp/etc/config.php
Remove the line with SP_Gridthumbs from app/etc/config.php
не нужно Magento автоматически удалит запись при запускеphp bin/magento setup:upgrade
Ниже приведены инструкции по удалению модуля вручную для Magento 2.
{folder path}\app\code
setup_module
Команда запуска
{корневой путь проекта magento}> {путь php} \ php.exe bin / magento setup: upgrade => Setup Upgrade
{корневой путь проекта magento}> {php path} \ php.exe bin / magento cache: flush => Очистить кеш
Как насчет:
php bin/magento module:disable <ExtensionProvider_ExtensionName> --clear-static-content
composer remove VendorName/VendorExtensionRepository
php bin/magento setup:upgrade
Для модулей композитора:
php bin/magento module:disable <ExtensionProvider_ExtensionName> --clear-static-content
php bin/magento module:uninstall <ExtensionProvider_ExtensionName> -r
composer update
php bin/magento setup:upgrade
Действия по удалению модуля, установленного композитором
Действия по удалению вручную добавленного модуля в приложении / коде
Удалить расширение из magento 2:
Перейдите в каталог проекта magento в CLI и проверьте состояние модуля, выполнив команду
php bin/magento module:status
Если он включен, отключите его, выполнив команду
php bin/magento module:disable <extension name>
Перейдите в базу данных, найдите таблицу «setup_module», найдите расширение и удалите его.
Удалите папку с именем вашего расширения из папки app / code
Запустите команду setup: upgrade.
Вы успешно удалили расширение.
Вот пошаговое руководство по удалению модуля третьей стороны из MAGENTO 2 вручную.
Step 1: Remove the module Vendor_Mymodule from app\etc\config.php
Step 2: Drop module tables or columns from database, please check app\code\Vendor\Module\Setup folder for more information
Step 3: Remove the folder app\code\vendor\Mymodule
Step 4: Remove module configuration settings from core_config_data table by running the following query
DELETE FROM setup_module WHERE module LIKE 'vendor_Mymodule';
Step 5: Run the following command by logging onto your SSH server
php bin/magento setup:upgrade
But if you have installed the module via composer then you can run the following list of commands by SSHing on the box to uninstall third party module
php bin/magento module:uninstall -r {{module_name}}
for example
php bin/magento module:uninstall -r Scommerce_GoogleTagManagerPro
-r flag removes module data
Run the following command once module has been successfully uninstalled.
php bin/magento setup:upgrade
К пользовательскому модулю Magento2
step1: disable the module
$php bin/magento module:disable Vendor_MyModule
step2: remove the folder from directory app/code/Vendor
step3: remove the line of code from app/etc/config.php file.
для получения дополнительной информации об удалении установленных сторонних / композитных расширений
https://www.scommerce-mage.com/blog/magento2-uninstall-module.html
Magento 2: Как удалить модуль
1. Если вы установили его вручную:
remove the folder app/code/<Vendor>/<Module>
drop module tables from database
remove the config settings.
DELETE FROM core_config_data WHERE path LIKE 'vendor_module/%'
DELETE FROM core_config_data WHERE path LIKE 'vendor_module/%'
remove the module <Vendor>_<Module> from app/etc/config.php
remove the module <Vendor>_<Module> from table setup_module
DELETE FROM setup_module WHERE module='<Vendor>_<Module>'
DELETE FROM setup_module WHERE module='<Vendor>_<Module>'
2. Если вы установили его через композитор:
run this in console
php bin/magento module:status
php bin/magento module:disable mirasvit/module-core --clear-static-content
php bin/magento module:uninstall -r <Vendor>_<Module>
php bin/magento setup:upgrade
php bin/magento c:f
composer remove mirasvit/module-core
Надеюсь, кто-то получит помощь
setup/src/Magento/Setup/Console/Command/ModuleUninstallCommand.php
и заменить
protected function validate(array $modules)
{
$messages = [];
$unknownPackages = [];
$unknownModules = [];
$installedPackages = $this->composer->getRootRequiredPackages();
foreach ($modules as $module) {
if (array_search($this->packageInfo->getPackageName($module), $installedPackages) === false) {
$unknownPackages[] = $module;
}
if (!$this->fullModuleList->has($module)) {
$unknownModules[] = $module;
}
}
$unknownPackages = array_diff($unknownPackages, $unknownModules);
if (!empty($unknownPackages)) {
$text = count($unknownPackages) > 1 ?
' are not installed composer packages' : ' is not an installed composer package';
$messages[] = '<error>' . implode(', ', $unknownPackages) . $text . '</error>';
}
if (!empty($unknownModules)) {
$messages[] = '<error>Unknown module(s): ' . implode(', ', $unknownModules) . '</error>';
}
return $messages;
}
с
protected function validate(array $modules)
{
$messages = [];
$unknownPackages = [];
$unknownModules = [];
$installedPackages = $this->composer->getRootRequiredPackages();
foreach ($modules as $module) {
if (array_search($this->packageInfo->getPackageName($module), $installedPackages) === false) {
$unknownPackages[] = $module;
}
if (!$this->fullModuleList->has($module)) {
$unknownModules[] = $module;
}
}
if (!empty($unknownModules)) {
$messages[] = '<error>Unknown module(s): ' . implode(', ', $unknownModules) . '</error>';
}
return $messages;
}
setup/src/Magento/Setup/Model/ModuleUninstaller.php
и заменить
public function uninstallCode(OutputInterface $output, array $modules)
{
$output->writeln('<info>Removing code from Magento codebase:</info>');
$packages = [];
/** @var \Magento\Framework\Module\PackageInfo $packageInfo */
$packageInfo = $this->objectManager->get('Magento\Framework\Module\PackageInfoFactory')->create();
foreach ($modules as $module) {
$packages[] = $packageInfo->getPackageName($module);
}
$this->remove->remove($packages);
}
с
public function uninstallCode(OutputInterface $output, array $modules)
{
$output->writeln('<info>Removing code from Magento codebase:</info>');
$packages = [];
/** @var \Magento\Framework\Module\PackageInfo $packageInfo */
$packageInfo = $this->objectManager->get('Magento\Framework\Module\PackageInfoFactory')->create();
foreach ($modules as $module) {
$packages[] = $packageInfo->getPackageName($module);
}
}
Обратите внимание, что решение не рекомендуется на производственном сервере