Magento 2 - Bagaimana cara menghapus modul?

11

Bagaimana cara menghapus modul?

Saya membaca dokumen ini

Tetapi itu tidak berhasil, dan ditampilkan di bawah:

php bin/magento module:uninstall SP_Gridthumbs 

SP_Gridthumbs bukan paket komposer yang diinstal

MrTo-Kane
sumber
Detail Deskripsi modul uninstall, rakeshjesadiya.com/...
Rakesh Jesadiya

Jawaban:

42

katanya di dokumentasi yang Anda tautkan, ini:

Perintah ini hanya berfungsi dengan modul yang didefinisikan sebagai paket Komposer.

Jika Anda tidak menginstal modul melalui komposer, itu tidak akan berfungsi.
Anda hanya dapat menonaktifkannya melalui bin/magento module:disable SP_Gridthumbs.

Untuk menghapus modul, hapus folder SP/Gridthumbs, hapus catatan dengan modul = 'SP_Gridthumbs' dari tabel setup_moduledan hapus tabel atau catatan lain yang ditambahkan oleh pemasangan modul.
Hapus juga baris dengan SP_Gridthumbsdariapp/etc/config.php

Marius
sumber
Bagaimana menghapus semua modul ini dari proyek, cara Anda menonaktifkannya.
MrTo-Kane
@ MagentoOdoo.com lihat pembaruan saya
Marius
Anda juga harus membersihkan cache
WaPoNe
3
Saya mengujinya. Remove the line with SP_Gridthumbs from app/etc/config.phptidak perlu. Magento akan secara otomatis menghapus catatan dengan menjalankanphp bin/magento setup:upgrade
Key Shang
Sebenarnya saya harus memperbarui satu catatan dari tabel dan kode ini dimasukkan ke dalam InstallData.php :: install () dan ketika mengaktifkan modul dan setup: perbarui itu jalankan kode saya. dan sekarang saya perlu ketika saya menonaktifkan modul kemudian juga harus menghapus recorde dari tabel saya lakukan kode di Uninstall :: uninstall tetapi tidak memicu ketika menonaktifkan modul. Yang memicu file ketika menonaktifkan modul dan setup: upgrade
HaFiz Umer
10

Berikut adalah langkah-langkah untuk Menghapus Instalasi Modul Secara Manual untuk Magento 2

  • Hapus folder Module dari {folder path}\app\code
  • Hapus entri modul dari setup_module
  • Jalankan perintah

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

    {jalur root proyek magento}> {jalur php} \ php.exe cache / cache magento: flush => Bersihkan Cache

Ankit Shah
sumber
4

Bagaimana tentang:

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

Untuk modul komposer:

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
sumber
Menjalankan pengaturan: perbarui sementara ada modul yang tidak diinstal melalui komposer akan membuatnya diinstal dan diaktifkan lagi yang mengalahkan tujuan.
Mohammed Joraid
1
@MohammedJoraid lihat jawaban yang diperbarui
Arvind07
1

Langkah-langkah untuk menghapus pemasangan modul komposer yang dipasang

  • modul bin / magento: nonaktifkan Namespace_ModuleName
  • modul bin / magento: hapus instalan Namespace_ModuleName
  • komposer menghapus namespace / module-name
  • cache bin / magento: flush

Langkah-langkah untuk menghapus modul yang ditambahkan secara manual dalam aplikasi / kode

  • modul bin / magento: nonaktifkan Namespace_ModuleName
  • hapus direktori dari aplikasi / kode secara manual
  • setup bin / magento: tingkatkan
  • cache bin / magento: flush
Yash Patadia
sumber
0

Saya pikir lebih baik untuk menonaktifkan modul menggunakan

modul php bin / magento : nonaktifkan modulename

karena ini memeriksa dependensi ...

Joris
sumber
0

Copot ekstensi dari magento 2:

  1. Pergi ke direktori proyek magento Anda di CLI dan periksa status modul, dengan menjalankan perintah php bin/magento module:status

  2. Jika diaktifkan, nonaktifkan dengan menjalankan perintah php bin/magento module:disable <extension name>

  3. Buka database dan cari tabel 'setup_module' dan cari nama ekstensi Anda dan hapus

  4. Hapus folder nama ekstensi Anda dari folder aplikasi / kode

  5. Jalankan pengaturan: perintah upgrade.

  6. Anda telah berhasil menghapus ekstensi.

Ajay
sumber
0

DI SINI ADALAH LANGKAH OLEH PANDUAN LANGKAH UNTUK MENGINSTAL MODUL PIHAK KETIGA DARI MAGENTO 2 MANUAL.

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

Untuk Modul Magento2 Kustom

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.

untuk informasi lebih lanjut tentang mencopot pemasangan ekstensi pihak ketiga / komposer

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

Arshad Syed
sumber
Bagaimana jika Anda memiliki modul berbeda dari vendor yang sama yang ingin Anda pertahankan? Kueri SQL Anda akan memecahkan ini.
Dominic Xigen
Baru saja mengedit Jawaban saya.
Arshad Syed
0

Magento 2: Cara menghapus modul

1. Jika Anda menginstalnya secara manual:

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.Jika Anda menginstalnya melalui komposer:

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

Semoga Seseorang mendapatkan bantuan

matinict
sumber
1
Saya baru saja membuat modul tanpa menggunakan file composer.json setelah hari saya menginstal composer.json apakah mungkin untuk menghapus modul menggunakan komposer? modul saya => github.com/ZusZus/simple-module/tree/master/app/code/Gta/Mymod @matinict
zus
@zus untuk menghindari konflik terlebih dahulu Anda harus menghapus kode dari aplikasi / kode, ya saya pikir Anda dapat menginstal / menghapus melalui komposer, (tautan modul Anda mungkin tidak berfungsi menginstal komposer Anda perlu menambahkan repo packagist.org Anda )
matinict
-7
  1. Buka setup/src/Magento/Setup/Console/Command/ModuleUninstallCommand.php

dan ganti

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

dengan

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

dan ganti

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

dengan

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

Catatan, solusinya tidak direkomendasikan di server produksi

Igoreus Barmaleus
sumber