Magento 2 - Come disinstallare il modulo?


Risposte:


43

dice nella documentazione che hai collegato, questo:

Questo comando funziona solo con moduli definiti come pacchetti Composer.

Se il modulo non è stato installato tramite il compositore, non funzionerà.
Puoi disabilitarlo solo tramite bin/magento module:disable SP_Gridthumbs.

Per rimuovere il modulo, rimuovere la cartella SP/Gridthumbs, rimuovere il record con module = 'SP_Gridthumbs' dalla tabella setup_modulee rimuovere eventuali altre tabelle o record aggiunti dall'installazione del modulo.
Rimuovere anche la linea con SP_Gridthumbsdaapp/etc/config.php


Come rimuovere tutto questo modulo dal progetto, a modo tuo disabilita.
MrTo-Kane,

@ MagentoOdoo.com vedi il mio aggiornamento
Marius

Dovresti anche pulire la cache
WaPoNe,

3
L'ho provato. Remove the line with SP_Gridthumbs from app/etc/config.phpnon serve. Magento rimuoverà automaticamente il record eseguendophp bin/magento setup:upgrade
Key Shang

In realtà devo aggiornare un record dalla tabella e questo codice inserito in InstallData.php :: install () e quando abilita il modulo e l'installazione: aggiornalo esegui il mio codice. e ora ho bisogno quando disabilito il modulo, quindi dovrei anche rimuovere il recorde dalla tabella che ho fatto il codice in Uninstall :: uninstall ma non attivare quando disabilita il modulo. Quale file viene attivato quando disabilita il modulo e l'installazione: upgrade
HaFiz Umer

10

Di seguito sono riportati i passaggi per disinstallare il modulo manualmente per Magento 2

  • Elimina la cartella del modulo da {folder path}\app\code
  • Rimuovere la voce del modulo da setup_module
  • Esegui comando

    {percorso root progetto magento}> {percorso php} \ php.exe bin / magento setup: upgrade => Setup Upgrade

    {percorso root progetto magento}> {percorso php} \ php.exe bin / magento cache: flush => Clear Cache


4

Che ne dite di:

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

Per i moduli del compositore:

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

Esecuzione del setup: esegui l'upgrade mentre ci sono moduli che non sono stati installati tramite il compositore li farà installare e abilitare di nuovo, il che vanifica lo scopo.
Mohammed Joraid,

1
@MohammedJoraid vedi risposta aggiornata
Arvind07

1

I passaggi per disinstallare un modulo installato compositore

  • modulo bin / magento: disabilita Namespace_ModuleName
  • modulo bin / magento: disinstallare Namespace_ModuleName
  • compositore rimuove namespace / nome-modulo
  • bin / magento cache: flush

Passaggi per disinstallare un modulo aggiunto manualmente in app / codice

  • modulo bin / magento: disabilita Namespace_ModuleName
  • rimuovere manualmente la directory dall'app / codice
  • installazione bin / magento: aggiornamento
  • bin / magento cache: flush

0

Penso che sia saggio disabilitare prima il modulo usando

modulo php bin / magento: disabilita modulename

perché controlla le dipendenze ...


0

Disinstallare l'estensione da Magento 2:

  1. Vai alla directory del tuo progetto magento nella CLI e verifica lo stato del modulo, eseguendo il comando php bin/magento module:status

  2. Se è abilitato, disabilitarlo eseguendo il comando php bin/magento module:disable <extension name>

  3. Vai al database e cerca la tabella 'setup_module' e cerca il nome della tua estensione ed eliminalo

  4. Elimina la cartella del nome dell'estensione dalla cartella app / codice

  5. Esegui il comando setup: upgrade.

  6. L'estensione è stata disinstallata correttamente.


0

ECCO LA GUIDA PASSO A PASSO PER DISINSTALLARE MANUALMENTE UN MODULO DI TERZE PARTI DI 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

Al modulo Magento2 personalizzato

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.

per ulteriori informazioni sulla disinstallazione di estensioni installate di terze parti / composer

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


Che cosa succede se hai moduli diversi dello stesso fornitore che desideri conservare? Le tue query SQL le interromperanno.
Dominic Xigen il

Ho appena modificato la mia risposta.
Arshad Syed,

0

Magento 2: come disinstallare il modulo

1. Se lo hai installato manualmente:

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.Se lo hai installato tramite il compositore:

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

Spero che qualcuno riceva aiuto


1
Ho appena creato il modulo senza utilizzare il file composer.json dopo il giorno in cui ho installato composer.json è possibile disinstallare il modulo utilizzando il compositore? my module => github.com/ZusZus/simple-module/tree/master/app/code/Gta/Mymod @matinict
zus

@zus per evitare conflitti prima devi rimuovere il codice dall'app / codice, sì, penso che tu possa installare / disinstallare tramite compositore (il tuo collegamento al modulo potrebbe non funzionare compositore installa devi aggiungere il tuo repo packagist.org )
matinict

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

e sostituisci

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

con

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

e sostituisci

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

con

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. Dì "lyaska masyaska"

Nota, la soluzione non è consigliata sul server di produzione

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.