Magento 2 - Como desinstalar o módulo?

11

Como desinstalar o módulo?

Eu li esse documento

Mas não foi bem-sucedido e é exibido abaixo:

php bin/magento module:uninstall SP_Gridthumbs 

SP_Gridthumbs não é um pacote compositor instalado

MrTo-Kane
fonte
Detalhes Descrição do módulo de desinstalação, rakeshjesadiya.com/…
Rakesh Jesadiya

Respostas:

42

diz na documentação que você vinculou, isto:

Este comando funciona apenas com os módulos definidos como pacotes do Composer.

Se você não instalou o módulo via compositor, ele não funcionará.
Você só pode desativá-lo via bin/magento module:disable SP_Gridthumbs.

Para remover o módulo, remova a pasta SP/Gridthumbs, remova o registro com module = 'SP_Gridthumbs' da tabela setup_modulee remova quaisquer outras tabelas ou registros adicionados pela instalação do módulo.
Remova também a linha com SP_Gridthumbsdeapp/etc/config.php

Marius
fonte
Como remover todo esse módulo do projeto, seu caminho é desativado.
MrTo-Kane
@ MagentoOdoo.com veja minha atualização
Marius
Você também deve limpar o cache
WaPoNe
3
Eu testei. Remove the line with SP_Gridthumbs from app/etc/config.phpnão precisa. O Magento removerá automaticamente o registro por execuçãophp bin/magento setup:upgrade
Key Shang
Na verdade, eu tenho que atualizar um registro da tabela e esse código colocado em InstallData.php :: install () e quando ativar o módulo e a instalação: atualize, execute meu código. e agora eu preciso quando desabilitar o módulo e também remover a gravação da tabela que fiz no código Uninstall :: uninstall, mas não acionar quando desabilitar o módulo. Qual arquivo é acionado quando o módulo e a configuração são desativados: upgrade
HaFiz Umer 04/11/19
10

Abaixo estão as etapas para desinstalar o módulo manualmente para Magento 2

  • Exclua a pasta Módulo de {folder path}\app\code
  • Remova a entrada do módulo de setup_module
  • Comando de execução

    {caminho raiz do projeto magento}> {caminho php} \ php.exe bin / magento setup: upgrade => Setup Upgrade

    {caminho raiz do projeto magento}> {caminho php} \ php.exe bin / magento cache: flush => Limpar cache

Ankit Shah
fonte
4

E se:

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

Para módulos compositores:

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
Arvind07
fonte
Executando a instalação: a atualização enquanto houver módulos que não foram instalados via compositor fará com que eles sejam instalados e ativados novamente, o que anula o objetivo.
Mohammed Joraid
1
@MohammedJoraid ver resposta atualizada
Arvind07
1

Etapas para desinstalar um módulo instalado do compositor

  • módulo bin / magento: desativar o Namespace_ModuleName
  • módulo bin / magento: desinstalar o Namespace_ModuleName
  • compositor remover espaço para nome / nome do módulo
  • cache bin / magento: flush

Etapas para desinstalar um módulo adicionado manualmente no aplicativo / código

  • módulo bin / magento: desativar o Namespace_ModuleName
  • remover o diretório do aplicativo / código manualmente
  • configuração bin / magento: atualização
  • cache bin / magento: flush
Yash Patadia
fonte
0

Eu acho que é aconselhável primeiro desativar o módulo usando

php bin / Magento módulo: disable modulename

porque isso verifica dependências ...

Joris
fonte
0

Desinstale a extensão do magento 2:

  1. Vá para o diretório do projeto magento na CLI e verifique o status do módulo, executando o comando php bin/magento module:status

  2. Se estiver ativado, desative-o executando o comando php bin/magento module:disable <extension name>

  3. Vá para o banco de dados e procure a tabela 'setup_module', procure o nome do seu ramal e exclua-o

  4. Exclua a pasta do nome da extensão da pasta app / code

  5. Execute o comando setup: upgrade.

  6. Você desinstalou com sucesso a extensão.

Ajay
fonte
0

A seguir, o guia passo a passo para desinstalar manualmente qualquer módulo de terceiros do 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

Para o módulo Magento2 personalizado

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.

para saber mais sobre como desinstalar extensões instaladas de terceiros / compositores

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

Arshad Syed
fonte
E se você tiver módulos diferentes do mesmo fornecedor que deseja manter? Suas consultas SQL irão quebrá-las.
Dominic Xigen 23/10/19
Acabei de editar minha resposta.
Arshad Syed
0

Magento 2: Como desinstalar o módulo

1. Se você o instalou 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 você o instalou via compositor:

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

Espero que alguém obtenha ajuda

matinict
fonte
1
Acabei de criar o módulo sem usar o arquivo composer.json após o dia em que instalei o composer.json, é possível desinstalar o módulo usando o compositor? meu módulo => github.com/ZusZus/simple-module/tree/master/app/code/Gta/Mymod @matinict
zus 29/02
@zus ao conflito evitar primeiro você precisa remover o código do app / código, sim, eu acho que u pode instalar / desinstalar via compositor, (ur ligação módulo pode não ser trabalho compositor instalar u precisa adicionar a sua repo packagist.org )
matinict
-7
  1. Aberto setup/src/Magento/Setup/Console/Command/ModuleUninstallCommand.php

e substitua

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

com

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

e substitua

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

com

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

Observe que a solução não é recomendada no servidor de produção

Igoreus Barmaleus
fonte