Bir modülü kaldırma


10

Bu komutla CLI kullanarak besteci aracılığıyla yüklediğim bir modülü (kendi) kaldırmaya çalışıyorum:

bin/magento module:uninstall -r [Namespace]_[Module]  

@RyanH tarafından sağlanan yanıta dayanarak Setup/Uninstall.phpmodülün veritabanıyla ilgili verilerini kaldıran dosyayı oluşturdum .

Bu mükemmel çalışıyor ancak kaldırma prosedürü askıda kalıyor.

Senaryoyu gece boyunca çalışır halde bıraktım ve hala aynı sonuç.
Uzantı dosyaları hala vendormodülün içinde.
Dosya izinlerine veya sahibine dokunmadım.

Doğru olan:

  • veritabanıyla ilgili veriler kaldırılır
  • modül adı tablodan kaldırılır setup_module
  • modül adı kaldırılır app/etc/config.php.

Ne yanlış gidiyor:

  • modül dosyaları hala vendorklasörde bulunur.
  • konsol komutu bitmiyor.

Konsol çıkışı:

Kod ve / veya veritabanı tablolarını kaldırmak üzeresiniz. Emin misiniz? [Y / N] y
Bakım modunu etkinleştirme
Veritabanını yedeklemeden kaldırıyorsunuz.
[Ad Alanı] _ [Modül] verilerinin
kaldırılması [Ad Alanı] _ [Modül] 'ün veritabanındaki modül kayıt defterinden
kaldırılması [Ad Alanı] _ [Modül]' ün dağıtım yapılandırmasındaki modül listesinden
kaldırılması Magento kod tabanından kod kaldırılması:

Bundan sonra sadece askıda kalıyor.

Kaldırma işlemini bitirmek veya en azından hata ayıklamak için yine de var mı?


ben de aynı sorunla karşı karşıyayım. Bunun çözümü nedir. Herhangi bir fikrin var mı
Vigna S

Tam olarak değil. Bir noktada çalışmaya başladı. Verilen cevabı takiben bir hata ayıklama yaptım ancak alakalı bir şey bulamadım.
Marius

tamam teşekkürler!!! Peki modülü kaldırmak için nasıl
Vigna S

Soruda listelenen komutu çalıştırın
Marius

Ben sadece kullanıyorum ama 'Magento kod temeli kodu kaldırma:'. Bundan sonra asılı
Vigna S

Yanıtlar:


3

Kaldırma işleminin eller altında olduğu kısmı aşağıda bulabilirsiniz 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);
}

Temel olarak, kaldırılacak paketleri listeler ve ardından composer removeşu paketler üzerinde bir komut çalıştırır lib/internal/Magento/Framework/Composer/Remove.php:

public function remove(array $packages)
{
    $composerApplication = $this->composerApplicationFactory->create();

    return $composerApplication->runComposerCommand(
        [
            'command' => 'remove',
            'packages' => $packages
        ]
    );
}

runComposerCommandYöntemi şurada bulabilirsiniz vendor/magento/composer/src/MagentoComposerApplication.php:

public function runComposerCommand(array $commandParams, $workingDir = null)
{
    $this->consoleApplication->resetComposer();

    if ($workingDir) {
        $commandParams[self::COMPOSER_WORKING_DIR] = $workingDir;
    } else {
        $commandParams[self::COMPOSER_WORKING_DIR] = dirname($this->composerJson);
    }

    $input = $this->consoleArrayInputFactory->create($commandParams);

    $exitCode = $this->consoleApplication->run($input, $this->consoleOutput);

    if ($exitCode) {
        throw new \RuntimeException(
            sprintf('Command "%s" failed: %s', $commandParams['command'], $this->consoleOutput->fetch())
        );
    }

    return $this->consoleOutput->fetch();
}

Bana göre burada yol boyunca bir şeyler oluyor ve bu işlevler hata ayıklamaya başlamanız gereken yer.

Belki de modül composer.jsondosyanız eksik veya bir hata var.


ccmposer dosyam orada. Bu, hata ayıklamaya başlamak için iyi bir yer gibi görünüyor. Teşekkürler.
Marius

yıllar sonra bu, kaldırmalarımın neden işe yaramadığını anlamama yardımcı oldu - / usr / local / bin / ea-php72 ~ / bin / composer / composer.phar gibi besteciyi aramam gerekiyor ve açıkçası config bunun için değil ...
iphigenie

0

bin / magento modülünü çalıştırdığımızda : Module_Name'i kaldırın, sonra cli'da gösterilmeyen arka işlemde besteci güncelleme komutunu da çalıştırır.

Besteci güncellemesini çalıştırdığımızda, magento marketplace hesabınızın kullanıcı adı ve şifresini gerektirir. daha sonra oluşturmadıysanız:

Kimlik doğrulama anahtarları oluşturmak için:

  1. Giriş yapın Magento Marketplace . Hesabınız yoksa, Kaydol'u tıklayın.

  2. Sayfanın sağ üst kısmındaki hesap adınızı tıklayın ve Profilim'i seçin.

  3. Marketplace sekmesinde Erişim Anahtarları'nı tıklayın.

resim açıklamasını buraya girin

Magento kök dizininizden bu komutu çalıştırın ln -s ~/.composer/auth.json var/composer_home/ , besteci auth.json'un sembolik bağlantısını oluşturur.

Module: run komutunu çalıştırdığımızda, magento var klasöründe veya magento kök dizininde auth.json dosyasını kontrol edin.

Benim için çalışıyor.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.