एक मॉड्यूल की स्थापना रद्द करना


10

मैं एक मॉड्यूल (अपने खुद के) को अनइंस्टॉल करने की कोशिश कर रहा हूं जो मैंने इस कमांड के साथ सीएलआई का उपयोग करके संगीतकार के माध्यम से स्थापित किया है:

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

@RyanH द्वारा यहां दिए गए उत्तर के आधार पर मैंने Setup/Uninstall.phpफ़ाइल बनाई है जो डेटाबेस से संबंधित डेटा को हटाती है।

यह पूरी तरह से काम करता है लेकिन अनइंस्टॉल करने की प्रक्रिया लटकी हुई है।

मैंने स्क्रिप्ट रात में भी छोड़ दी है और अब भी वही परिणाम है।
विस्तार फ़ाइलें अभी भी vendorमॉड्यूल में हैं।
मैंने फ़ाइल अनुमतियाँ या स्वामी को नहीं छुआ।

क्या सही है:

  • डेटाबेस से संबंधित डेटा हटा दिया जाता है
  • मॉड्यूल का नाम तालिका से हटा दिया गया है setup_module
  • मॉड्यूल नाम से हटा दिया गया है app/etc/config.php

क्या गलत है:

  • मॉड्यूल फ़ाइलें अभी भी vendorफ़ोल्डर में हैं।
  • कंसोल कमांड समाप्त नहीं होता है।

कंसोल आउटपुट:

आप कोड और / या डेटाबेस तालिकाओं को हटाने वाले हैं। क्या आप सुनिश्चित हैं? [Y / N] y
रखरखाव मोड को सक्षम करना
आप बिना डेटाबेस बैकअप के डेटा निकाल रहे हैं।
[Namespace] _ [मॉड्यूल] का डेटा
हटाना [Namespace] _ [मॉड्यूल] डेटाबेस रजिस्ट्री में मॉड्यूल रजिस्ट्री से
हटाना [Namespace] _ [मॉड्यूल] परिनियोजन कॉन्फ़िगरेशन में मॉड्यूल सूची
से Magento के कोडबेस को कोड हटाना:

इसके बाद बस लटक गई।

वैसे भी अनइंस्टॉल की प्रक्रिया को पूरा करने के लिए, या कम से कम इसे डिबग करना है?


यहां तक ​​कि मैं भी इसी मुद्दे का सामना कर रहा हूं। इसके लिए क्या उपाय है। क्या आपके पास कोई विचार है
विग्ना एस

बिल्कुल नहीं। एक समय यह काम करने लगा। मैंने दिए गए उत्तर के बाद डिबग किया, लेकिन प्रासंगिक कुछ भी नहीं पाया।
मारियस

ठीक है धन्यवाद!!! तो मॉड्यूल की स्थापना रद्द करने के लिए कैसे
Vigna S

प्रश्न में सूचीबद्ध कमांड चलाएँ
Marius

मैं केवल उसी का उपयोग कर रहा हूं लेकिन यह 'मैगेंटो कोडबेस से कोड हटा रहा है:' में अटका हुआ है। जिसके बाद यह लटका हुआ है
विग्ना एस

जवाबों:


3

अनइंस्टॉल प्रक्रिया का हिस्सा यह था कि हाथों को नीचे पाया जा सकता है 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);
}

मूल रूप से यह संकुल को हटाने के लिए सूचीबद्ध करता है और फिर composer removeउन संकुल पर कमांड चलाता है lib/internal/Magento/Framework/Composer/Remove.php:

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

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

आप में runComposerCommandविधि पा सकते हैं 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();
}

मेरे लिए यहां रास्ते में कुछ होता है और वे कार्य वे हैं जहां आपको डिबगिंग शुरू करनी चाहिए।

हो सकता है कि आप मॉड्यूल composer.jsonफ़ाइल गायब है या कोई त्रुटि है।


मेरी ccmposer फ़ाइल है। यह डिबगिंग शुरू करने के लिए एक अच्छी जगह की तरह दिखता है। धन्यवाद।
मेरियस

वर्षों बाद इसने मुझे यह समझने में मदद की है कि मेरे अनइंस्टॉल ने काम क्यों नहीं किया - मुझे / usr / local / bin / ea-php72 ~ / bin / कंपोज़र / कंपोज़र जैसे कंपोज़र को कॉल करना होगा।
आईपजनी

0

जब हम बिन / मैगनेटो मॉड्यूल चलाते हैं : Module_Name को अनइंस्टॉल करते हैं तो यह कंपोजर अपडेट कमांड को बैक प्रोसेस में भी चलाता है जो कि क्ली में नहीं दिखाया गया है।

जब हम कंपोज़र अपडेट चलाते हैं तो इसके लिए यूज़र और पासवर्ड चाहिए जो आपके मैगनेटो मार्केटप्लेस अकाउंट का हो। अगर आपने नहीं बनाया है:

प्रमाणीकरण कुंजी बनाने के लिए:

  1. Magento मार्केटप्लेस में लॉग इन करें । यदि आपके पास कोई खाता नहीं है, तो रजिस्टर पर क्लिक करें।

  2. पृष्ठ के शीर्ष-दाईं ओर अपना खाता नाम क्लिक करें और मेरा प्रोफ़ाइल चुनें।

  3. बाज़ार टैब में पहुंच कुंजी पर क्लिक करें।

यहां छवि विवरण दर्ज करें

इस कमांड को अपने Magento रूट डाइरेक्टरी से चलाएं यह ln -s ~/.composer/auth.json var/composer_home/ आपके कंपोजर के प्रतीकात्मक लिंक को बना देगा

जब हम मॉड्यूल चलाते हैं: अनइंस्टॉल करें तब यह magento var folder या magento रूट डायरेक्टरी में Cort.json को चेक करता है।

यह मेरे लिए काम करता है।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.