Magento 2 - Як видалити модуль?


11

Як видалити модуль?

Я прочитав цей документ

Але це не вдалося, і відобразити нижче:

php bin/magento module:uninstall SP_Gridthumbs 

SP_Gridthumbs - це не встановлений пакет композиторів


Детальніше Опис видалення модуля, rakeshjesadiya.com/…
Rakesh Jesadiya

Відповіді:


43

У документації, до якої ви зв'язані, сказано:

Ця команда працює лише з модулями, визначеними як пакети Composer.

Якщо ви не встановили модуль через композитор, він не працюватиме.
Відключити його можна лише через bin/magento module:disable SP_Gridthumbs.

Щоб видалити модуль, вийміть папку SP/Gridthumbs, видаліть запис із модулем = 'SP_Gridthumbs' з таблиці setup_moduleта видаліть будь-які інші таблиці чи записи, додані встановленням модуля.
Також видаліть рядок з SP_Gridthumbsвідapp/etc/config.php


Як видалити весь цей модуль з проекту, ваш спосіб просто відключити.
MrTo-Kane

@ MagentoOdoo.com дивись моє оновлення
Marius

Також слід очистити кеш
WaPoNe

3
Я тестував це. Remove the line with SP_Gridthumbs from app/etc/config.phpне потрібно. Magento автоматично видалить запис запуститиphp bin/magento setup:upgrade
Key Shang

Насправді мені потрібно оновити один запис із таблиці, і цей код помістити в InstallData.php :: install (), а при включенні модуля та настройки: оновити його, запустіть мій код. і тепер мені потрібно, коли я відключаю модуль, тоді також слід видалити recorde з таблиці. Я зробив код в Uninstall :: uninstall, але не запускати при відключенні модуля. Який файл тригера при відключенні модуля та налаштування: оновлення
HaFiz Umer

10

Нижче наведено етапи ручного видалення модуля Magento 2

  • Видаліть папку Модуль з {folder path}\app\code
  • Видалити запис модуля з setup_module
  • Запустити команду

    {кореневий шлях проекту magento}> {php path} \ php.exe bin / magento setup: upgrade => Налаштування оновлення

    {magento root root path}> {php path} \ php.exe bin / magento cache: flush => Очистити кеш


4

Як щодо:

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

Запуск установки: оновлення, хоча є модулі, які не були встановлені через композитор, змусить їх встановити та включити знову, що переможе мету.
Мохаммед Жораїд

1
@MohammedJoraid дивіться оновлену відповідь
Arvind07

1

Кроки з видалення встановленого композитором модуля

  • модуль bin / magento: відключення простору імен_ModuleName
  • модуль bin / magento: видаліть Namespace_ModuleName
  • композитор видалити простір імен / ім'я модуля
  • кеш bin / magento: flush

Кроки для видалення вручну доданого модуля в додатку / коді

  • модуль bin / magento: відключення простору імен_ModuleName
  • видалити каталог із програми / коду вручну
  • налаштування бін / магенто: оновлення
  • кеш bin / magento: flush

0

Я думаю, що розумно спочатку відключити використання модуля

модуль php bin / magento: вимкнути ім'я модуля

тому що це перевіряє на залежність ...


0

Видаліть розширення з magento 2:

  1. Перейдіть до каталогу проекту magento в CLI і запустіть команду і перевірте стан модуля php bin/magento module:status

  2. Якщо він включений, зробіть його відключенням, запустивши команду php bin/magento module:disable <extension name>

  3. Перейдіть до бази даних та знайдіть таблицю "setup_module" та знайдіть ім'я розширення та видаліть його

  4. Видаліть папку з іменем розширення з папки програми / коду

  5. Запустіть команду setup: upgrade.

  6. Ви успішно видалили розширення.


0

ТУТ КРАЙНИЙ КРОК КОРИСТУВАННЯ ДО УСТАНОВКИ БУДЬ-ЯКОГО МОДУЛЯ ТРЕТИХ СТОРІН МАГЕНТО-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


Що робити, якщо у вас є різні модулі того самого постачальника, якого ви хочете зберегти? Ваші запити SQL будуть порушувати ці.
Домінік Сіген

Щойно відредагував мою відповідь.
Аршад

0

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

Сподіваюся, хтось отримає допомогу


1
Я тільки що створив модуль, не використовуючи файл composer.json після того, як я встановив composer.json, чи можна видалити модуль за допомогою композитора? мій модуль => github.com/ZusZus/simple-module/tree/master/app/code/Gta/Mymod @matinict
ZUS

@zus, щоб уникнути конфлікту, спочатку вам потрібно видалити код із програми / коду, так, я думаю, ви можете встановити / видалити через композитор ((посилання на модуль ур може не працювати. Встановити композитор. Вам потрібно додати ваш репо packgist.org )
matinict

-7
  1. відчинено 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;
}
  1. відчинено 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);
    }
}
  1. Скажіть "ляська масаска"

Зауважте, рішення не рекомендується на виробничому сервері

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.