Magento 2 - Comment désinstaller le module?

11

Comment désinstaller le module?

J'ai lu ce document

Mais cela n'a pas réussi, et affichez ci-dessous:

php bin/magento module:uninstall SP_Gridthumbs 

SP_Gridthumbs n'est pas un package de compositeur installé

MrTo-Kane
la source
Détails Description du module de désinstallation, rakeshjesadiya.com/…
Rakesh Jesadiya

Réponses:

42

il est dit dans la documentation que vous avez liée, ceci:

Cette commande fonctionne uniquement avec les modules définis comme packages Composer.

Si vous n'avez pas installé le module via composer, cela ne fonctionnera pas.
Vous ne pouvez le désactiver que via bin/magento module:disable SP_Gridthumbs.

Pour supprimer le module, supprimez le dossier SP/Gridthumbs, supprimez l'enregistrement avec module = 'SP_Gridthumbs' de la table setup_moduleet supprimez toutes les autres tables ou enregistrements ajoutés par l'installation du module.
Supprimez également la ligne avec SP_Gridthumbsdeapp/etc/config.php

Marius
la source
Comment supprimer tout ce module du projet, à votre façon, désactivez-le.
MrTo-Kane
@ MagentoOdoo.com voir ma mise à jour
Marius
Vous devez également nettoyer le cache
WaPoNe
3
Je l'ai testé. Remove the line with SP_Gridthumbs from app/etc/config.phpn'a pas besoin. Magento supprimera automatiquement l'enregistrement par exécutionphp bin/magento setup:upgrade
Key Shang
En fait, je dois mettre à jour un enregistrement de la table et ce code mis dans InstallData.php :: install () et quand activer le module et la configuration: le mettre à niveau, exécuter mon code. et maintenant j'ai besoin quand je désactive le module, alors je devrais également supprimer le fichier de la table J'ai fait du code dans Uninstall :: uninstall mais pas déclenché lorsque je désactive le module. Quel fichier déclencher lorsque désactiver le module et la configuration: mise à niveau
HaFiz Umer
10

Voici les étapes pour désinstaller manuellement le module pour Magento 2

  • Supprimez le dossier Module de {folder path}\app\code
  • Supprimer l'entrée de module de setup_module
  • Exécuter la commande

    {chemin racine du projet magento}> {chemin php} \ php.exe bin / magento setup: upgrade => Setup Upgrade

    {chemin racine du projet magento}> {chemin php} \ cache php.exe bin / magento: flush => Vider le cache

Ankit Shah
la source
4

Que diriez-vous:

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

Pour les modules compositeur:

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
la source
Exécution de l'installation: la mise à niveau alors qu'il y a des modules qui n'ont pas été installés via Composer les fera installer et réactiver, ce qui va à l'encontre du but.
Mohammed Joraid
1
@MohammedJoraid voir la réponse mise à jour
Arvind07
1

Étapes pour désinstaller un module installé par Composer

  • module bin / magento: désactiver Namespace_ModuleName
  • module bin / magento: désinstaller Namespace_ModuleName
  • compositeur supprimer l'espace de noms / nom-module
  • cache bin / magento: vidage

Étapes pour désinstaller un module ajouté manuellement dans l'application / le code

  • module bin / magento: désactiver Namespace_ModuleName
  • supprimer manuellement le répertoire de l'application / du code
  • configuration bin / magento: mise à niveau
  • cache bin / magento: vidage
Yash Patadia
la source
0

Je pense qu'il est sage de désactiver d'abord le module en utilisant

bin php / du module magento: désactiver modulename

car cela vérifie les dépendances ...

Joris
la source
0

Désinstaller l'extension de magento 2:

  1. Accédez à votre répertoire de projet magento dans CLI et vérifiez l'état du module, en exécutant la commande php bin/magento module:status

  2. S'il est activé, désactivez-le en exécutant la commande php bin/magento module:disable <extension name>

  3. Allez dans la base de données et recherchez la table 'setup_module' et recherchez le nom de votre extension et supprimez-le

  4. Supprimez le dossier du nom de votre extension du dossier app / code

  5. Exécutez la commande setup: upgrade.

  6. Vous avez réussi à désinstaller l'extension.

Ajay
la source
0

VOICI LE GUIDE ÉTAPE PAR ÉTAPE POUR DÉSINSTALLER MANUELLEMENT TOUT MODULE TIERS DE 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

Vers le module Magento2 personnalisé

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.

pour en savoir plus sur la désinstallation des extensions installées par des tiers / compositeurs

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

Arshad Syed
la source
Que faire si vous avez différents modules du même fournisseur que vous souhaitez conserver? Vos requêtes SQL vont les casser.
Dominic Xigen
Je viens de modifier ma réponse.
Arshad Syed
0

Magento 2: Comment désinstaller le module

1. Si vous l'avez installé manuellement:

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 vous l'avez installé via composer:

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

J'espère que quelqu'un obtiendra de l'aide

matinict
la source
1
Je viens de créer un module sans utiliser le fichier composer.json après le jour où j'ai installé composer.json, est-il possible de désinstaller le module à l'aide de composer? mon module => github.com/ZusZus/simple-module/tree/master/app/code/Gta/Mymod @matinict
zus
@zus pour éviter les conflits vous devez d'abord supprimer le code de l' application / code, oui je pense que vous pouvez installer / désinstaller via compositeur, (ur liaison module peut être pas de travail compositeur installer u besoin d'ajouter votre repo packagist.org )
matinict
-7
  1. Ouvert setup/src/Magento/Setup/Console/Command/ModuleUninstallCommand.php

et remplacer

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

avec

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

et remplacer

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

avec

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

Remarque, la solution n'est pas recommandée sur le serveur de production

Igoreus Barmaleus
la source