Magento 2-モジュールをアンインストールする方法


11

モジュールをアンインストールするには?

この文書を読んだ

しかし、成功しなかったため、以下に表示します。

php bin/magento module:uninstall SP_Gridthumbs 

SP_GridthumbsはインストールされたComposerパッケージではありません


アンインストールモジュールの詳細説明、rakeshjesadiya.com/...
ラケッシュJesadiya

回答:


42

それはあなたがリンクしたドキュメントでこれを言っています:

このコマンドは、Composerパッケージとして定義されたモジュールでのみ機能します。

composerを介してモジュールをインストールしなかった場合、機能しません。
を介してのみ無効にできbin/magento module:disable SP_Gridthumbsます。

モジュールを削除するには、フォルダーSP/Gridthumbsを削除し、モジュール= 'SP_Gridthumbs'のレコードをテーブルsetup_moduleから削除し、モジュールのインストールによって追加された他のテーブルまたはレコードを削除します。from
の行も削除しますSP_Gridthumbsapp/etc/config.php


このすべてのモジュールをプロジェクトから削除する方法、あなたの方法は単に無効にします。
MrTo-Kane 2016

@ MagentoOdoo.com私の更新を参照
マリウス

また、キャッシュを消去する必要があります
WaPoNe 2017

3
私はそれをテストしました。Remove the line with SP_Gridthumbs from app/etc/config.php必要ありません。Magentoは実行によりレコードを自動削除しますphp bin/magento setup:upgrade
Key Shang

実際、テーブルから1つのレコードを更新する必要があり、このコードはInstallData.php :: install()に配置され、モジュールを有効にしてsetup:upgradeすると、コードが実行されます。そして今、私はモジュールを無効にするときに必要であり、テーブルからレコードを削除する必要があります。Uninstall:: uninstallでコードを実行しましたが、モジュールを無効にするときにトリガーしません。モジュールとセットアップを無効にするとどのファイルがトリガーされるか:アップグレード
HaFiz Umer

10

Magento 2のモジュールを手動でアンインストールする手順は次のとおりです

  • からModuleフォルダを削除します {folder path}\app\code
  • からモジュールエントリを削除 setup_module
  • コマンドを実行

    {magentoプロジェクトルートパス}> {phpパス} \ php.exe bin / magento setup:upgrade =>セットアップアップグレード

    {magentoプロジェクトのルートパス}> {phpパス} \ php.exe bin / magento cache:flush =>キャッシュをクリア


4

どうですか:

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

composerモジュールの場合:

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

セットアップを実行する:composerを介してインストールされなかったモジュールがある間にアップグレードすると、それらがインストールされて再び有効になり、目的が達成されません。
Mohammed Joraid

1
@MohammedJoraid更新された回答を参照
Arvind07

1

Composerがインストールしたモジュールをアンインストールする手順

  • bin / magentoモジュール:Namespace_ModuleNameを無効にする
  • bin / magentoモジュール:Namespace_ModuleNameのアンインストール
  • composerは名前空間/モジュール名を削除します
  • bin / magentoキャッシュ:フラッシュ

app / codeに手動で追加されたモジュールをアンインストールする手順

  • bin / magentoモジュール:Namespace_ModuleNameを無効にする
  • app / codeから手動でディレクトリを削除する
  • bin / magentoセットアップ:アップグレード
  • bin / magentoキャッシュ:フラッシュ

0

最初にモジュールを無効にするのが賢明だと思います

php bin / magento module:disable modulename

これは依存関係をチェックするため...


0

magento 2から拡張機能をアンインストールします。

  1. CLIでmagentoプロジェクトディレクトリに移動し、コマンドを実行してモジュールのステータスを確認します php bin/magento module:status

  2. 有効になっている場合は、コマンドを実行して無効にします php bin/magento module:disable <extension name>

  3. データベースに移動して「setup_module」テーブルを検索し、拡張名を検索して削除します

  4. app / codeフォルダーから拡張名フォルダーを削除します

  5. setup:upgradeコマンドを実行します。

  6. 拡張機能をアンインストールしました。


0

ここに、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

カスタム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.

サードパーティ/ composerがインストールした拡張機能のアンインストールの詳細

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


保持したい同じベンダーの異なるモジュールがある場合はどうなりますか?SQLクエリはこれらを壊します。
Dominic Xigen

私の回答を編集しました。
Arshad Syed

0

Magento 2:モジュールをアンインストールする方法

1.手動でインストールした場合:

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. 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

誰かが助けを願っています


1
composer.jsonをインストールした後、composer.jsonファイルを使用せずにモジュールを作成しましたが、composerを使用してモジュールをアンインストールできますか?私のモジュール=> github.com/ZusZus/simple-module/tree/master/app/code/Gta/Mymod @matinict
zus

@zus競合を回避するには、最初にapp / codeからコードを削除する必要があります。はい、composerを介してインストール/アンインストールできると思います(モジュールリンクが機能しない可能性がありますcomposer install u repo packagist.orgを追加する必要があります)
matinict

-7
  1. 開いた setup/src/Magento/Setup/Console/Command/ModuleUninstallCommand.php

そして交換する

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

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

そして交換する

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

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. 「lyaska masyaska」と言ってください

注:このソリューションは本番サーバーでは推奨されていません

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.