Magento 2 - Jak odinstalować moduł?


Odpowiedzi:


43

w połączonej dokumentacji napisano:

To polecenie działa tylko z modułami zdefiniowanymi jako pakiety Composer.

Jeśli moduł nie został zainstalowany przez kompozytora, nie będzie działał.
Możesz to wyłączyć tylko poprzez bin/magento module:disable SP_Gridthumbs.

Aby usunąć moduł, usuń folder SP/Gridthumbs, usuń rekord o module = „SP_Gridthumbs” z tabeli setup_modulei usuń wszelkie inne tabele lub rekordy dodane podczas instalacji modułu.
Również usunąć linię SP_Gridthumbszapp/etc/config.php


Jak usunąć cały ten moduł z projektu, po prostu wyłącz.
MrTo-Kane

@ MagentoOdoo.com zobacz moją aktualizację
Marius

Powinieneś także wyczyścić pamięć podręczną
WaPoNe

3
Przetestowałem to. Remove the line with SP_Gridthumbs from app/etc/config.phpnie potrzebuje. Magento automatycznie usunie rekord przez uruchomieniephp bin/magento setup:upgrade
Key Shang

Właściwie muszę zaktualizować jeden rekord z tabeli i ten kod umieścić w InstallData.php :: install (), a kiedy włączyć moduł i konfigurację: zaktualizuj go, uruchom mój kod. a teraz potrzebuję, kiedy wyłączam moduł, to powinienem również usunąć recorde z tabeli, którą zrobiłem kod w Uninstall :: uninstall, ale nie wyzwalać po wyłączeniu modułu. Który plik wyzwala po wyłączeniu modułu i konfiguracji: aktualizacja
HaFiz Umer

10

Poniżej znajdują się kroki, aby ręcznie odinstalować moduł dla Magento 2

  • Usuń folder Module z {folder path}\app\code
  • Usuń wpis modułu z setup_module
  • Uruchom polecenie

    {ścieżka katalogu projektu magento}> {ścieżka php} \ php.exe bin / magento setup: upgrade => Setup Upgrade

    {ścieżka katalogu projektu magento}> {ścieżka php} \ php.exe bin / magento cache: flush => Wyczyść pamięć podręczną


4

Co powiesz na:

php bin/magento module:disable <ExtensionProvider_ExtensionName> --clear-static-content
composer remove VendorName/VendorExtensionRepository
php bin/magento setup:upgrade

W przypadku modułów kompozytora:

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

Uruchamianie programu instalacyjnego: zaktualizuj, dopóki istnieją moduły, które nie zostały zainstalowane za pomocą narzędzia Composer, a zostaną one ponownie zainstalowane i włączone, co nie pozwala na osiągnięcie celu.
Mohammed Joraid,

1
@MohammedJoraid patrz zaktualizowana odpowiedź
Arvind07,

1

Kroki odinstalowywania zainstalowanego modułu kompozytora

  • moduł bin / magento: wyłącz Namespace_ModuleName
  • moduł bin / magento: odinstaluj Namespace_ModuleName
  • kompozytor usuwa przestrzeń nazw / nazwa modułu
  • bin / magento cache: flush

Kroki odinstalowywania ręcznie dodanego modułu w aplikacji / kodzie

  • moduł bin / magento: wyłącz Namespace_ModuleName
  • ręcznie usuń katalog z aplikacji / kodu
  • Konfiguracja bin / magento: aktualizacja
  • bin / magento cache: flush

0

Myślę, że rozsądnie jest najpierw wyłączyć moduł za pomocą

moduł php bin / magento: wyłącz modulename

ponieważ sprawdza to zależności ...


0

Odinstaluj rozszerzenie z magento 2:

  1. Przejdź do katalogu projektu magento w CLI i sprawdź status modułu, uruchamiając polecenie php bin/magento module:status

  2. Jeśli jest włączony, wyłącz go, uruchamiając polecenie php bin/magento module:disable <extension name>

  3. Przejdź do bazy danych i wyszukaj tabelę „setup_module”, wyszukaj nazwę rozszerzenia i usuń ją

  4. Usuń folder nazwy rozszerzenia z folderu aplikacji / kodu

  5. Uruchom komendę setup: upgrade.

  6. Pomyślnie odinstalowałeś rozszerzenie.


0

TUTAJ JEST PRZEWODNIK KROK PO KROKU, ABY ODINSTALOWAĆ RĘCZNIE MODUŁ STRONY TRZECIEJ OD 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

Do niestandardowego modułu 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.

aby uzyskać więcej informacji na temat odinstalowywania zainstalowanych rozszerzeń innych firm / kompozytorów

https://www.scommerce-mage.com/blog/magento2-uninstall-module.html


Co jeśli masz różne moduły tego samego dostawcy, którego chcesz zatrzymać? Twoje zapytania SQL spowodują ich uszkodzenie.
Dominic Xigen

Właśnie zredagowałem moją odpowiedź.
Arshad Syed

0

Magento 2: Jak odinstalować moduł

1. Jeśli zainstalowałeś go ręcznie:

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. Jeśli zainstalowałeś go za pomocą kompozytora:

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

Mam nadzieję, że ktoś uzyska pomoc


1
Właśnie utworzyłem moduł bez użycia pliku composer.json po dniu, w którym zainstalowałem composer.json. Czy można odinstalować moduł za pomocą kompozytora? mój moduł => github.com/ZusZus/simple-module/tree/master/app/code/Gta/Mymod @matinict
zus

@zus, aby uniknąć konfliktu, najpierw musisz usunąć kod z aplikacji / kodu, tak, myślę, że możesz zainstalować / odinstalować przez kompozytora (link do modułu może nie działać instalacja kompozytora musisz dodać repo packagist.org )
Matinict

-7
  1. otwarty setup/src/Magento/Setup/Console/Command/ModuleUninstallCommand.php

i zamień

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;
}

z

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. otwarty setup/src/Magento/Setup/Model/ModuleUninstaller.php

i zamień

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);
}

z

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. Powiedz „lyaska masyaska”

Uwaga: rozwiązanie nie jest zalecane na serwerze produkcyjnym

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.