Magento 2 - ¿Cómo desinstalar el módulo?

11

¿Cómo desinstalar el módulo?

Leo este documento

Pero no tuvo éxito, y se muestra a continuación:

php bin/magento module:uninstall SP_Gridthumbs 

SP_Gridthumbs no es un paquete de compositor instalado

MrTo-Kane
fuente
Descripción detallada del módulo de desinstalación, rakeshjesadiya.com/…
Rakesh Jesadiya

Respuestas:

42

dice en la documentación que vinculó, esto:

Este comando solo funciona con módulos definidos como paquetes Composer.

Si no instaló el módulo a través del compositor, no funcionará.
Solo puede deshabilitarlo a través de bin/magento module:disable SP_Gridthumbs.

Para eliminar el módulo, elimine la carpeta SP/Gridthumbs, elimine el registro con module = 'SP_Gridthumbs' de la tabla setup_moduley elimine cualquier otra tabla o registro agregado por la instalación del módulo.
También quite la línea con SP_Gridthumbsdeapp/etc/config.php

Marius
fuente
Cómo eliminar todo este módulo del proyecto, simplemente deshabilítelo.
MrTo-Kane
@ MagentoOdoo.com vea mi actualización
Marius
También debe limpiar el caché
WaPoNe
3
Lo probé Remove the line with SP_Gridthumbs from app/etc/config.phpno necesita Magento eliminará automáticamente el registro por ejecuciónphp bin/magento setup:upgrade
Key Shang
En realidad, tengo que actualizar un registro de la tabla y este código se coloca en InstallData.php :: install () y cuando habilito el módulo y la configuración: actualizarlo, ejecuta mi código. y ahora necesito cuando deshabilito el módulo, entonces también debería eliminar la grabación de la tabla que codifiqué en Desinstalar :: desinstalar pero no activar cuando deshabilito el módulo. Qué disparador de archivo al deshabilitar el módulo y la configuración: actualización
HaFiz Umer
10

A continuación se detallan los pasos para desinstalar el módulo manualmente para Magento 2

  • Eliminar la carpeta del módulo de {folder path}\app\code
  • Eliminar entrada de módulo de setup_module
  • Ejecutar comando

    {ruta raíz del proyecto magento}> {ruta php} \ php.exe bin / magento setup: upgrade => Setup Upgrade

    {ruta raíz del proyecto magento}> {ruta php} \ php.exe bin / magento cache: flush => Borrar caché

Ankit Shah
fuente
4

Qué tal si:

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

Para módulos de compositor:

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
fuente
Configuración en ejecución: la actualización mientras haya módulos que no se instalaron a través de Composer hará que se instalen y habiliten nuevamente, lo que frustra el propósito.
Mohammed Joraid
1
@MohammedJoraid ver respuesta actualizada
Arvind07
1

Pasos para desinstalar un módulo instalado de Composer

  • módulo bin / magento: deshabilitar Namespace_ModuleName
  • módulo bin / magento: desinstalar Namespace_ModuleName
  • compositor eliminar el espacio de nombres / nombre del módulo
  • bin / magento cache: flush

Pasos para desinstalar un módulo agregado manualmente en la aplicación / código

  • módulo bin / magento: deshabilitar Namespace_ModuleName
  • eliminar el directorio de la aplicación / código manualmente
  • configuración bin / magento: actualización
  • bin / magento cache: flush
Yash Patadia
fuente
0

Creo que es aconsejable desactivar primero el módulo usando

php bin / magento module: deshabilitar modulename

porque esto busca dependencias ...

Joris
fuente
0

Desinstalar la extensión de magento 2:

  1. Vaya a su directorio de proyectos de magento en CLI y verifique el estado del módulo, ejecutando el comando php bin/magento module:status

  2. Si está habilitado, deshabilítelo ejecutando el comando php bin/magento module:disable <extension name>

  3. Vaya a la base de datos y busque la tabla 'setup_module' y busque el nombre de su extensión y elimínelo

  4. Elimine la carpeta de su nombre de extensión de la carpeta de aplicación / código

  5. Ejecute el comando setup: upgrade.

  6. Has desinstalado exitosamente la extensión.

Ajay
fuente
0

AQUÍ ESTÁ LA GUÍA PASO A PASO PARA DESINSTALAR CUALQUIER MÓDULO DE TERCEROS DE MAGENTO 2 MANUALMENTE.

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 personalizar el módulo 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.

para obtener más información sobre la desinstalación de extensiones instaladas de terceros / compositores

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

Arshad Syed
fuente
¿Qué sucede si tiene diferentes módulos del mismo proveedor que desea conservar? Sus consultas SQL los romperán.
Dominic Xigen el
Acabo de editar mi respuesta.
Arshad Syed
0

Magento 2: cómo desinstalar el módulo

1. Si lo instaló 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.Si lo instaló a través del 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 alguien obtenga ayuda

matinict
fuente
1
Acabo de crear el módulo sin usar el archivo composer.json después del día que instalé composer.json ¿es posible desinstalar el módulo usando composer? mi módulo => github.com/ZusZus/simple-module/tree/master/app/code/Gta/Mymod @matinict
zus
@zus a evitar conflictos primero tiene que quitar el código de aplicación / código, sí creo que u puede instalar / desinstalar mediante el compositor, (ur enlace módulo no puede ser el compositor trabajos de instalación u necesidad de añadir su cesión temporal packagist.org )
matinict
-7
  1. Abierto setup/src/Magento/Setup/Console/Command/ModuleUninstallCommand.php

y reemplazar

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

y reemplazar

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

Tenga en cuenta que la solución no se recomienda en el servidor de producción

Igoreus Barmaleus
fuente