একটি মডিউল আনইনস্টল করা হচ্ছে


10

আমি এই কমান্ডটি দিয়ে CLI ব্যবহার করে সুরকারের মাধ্যমে ইনস্টল করা একটি মডিউল (আমার নিজের) আনইনস্টল করার চেষ্টা করছি:

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

@ রায়ানএইচ দ্বারা প্রদত্ত উত্তরের ভিত্তিতে আমি Setup/Uninstall.phpফাইলটি তৈরি করেছি যা মডিউলটির ডেটাবেস সম্পর্কিত ডেটা সরিয়ে দেয়।

এটি নিখুঁতভাবে কাজ করে তবে আনইনস্টল পদ্ধতি স্থগিত থাকে।

আমি এমনকি স্ক্রিপ্টটি রাতারাতি চালিয়ে গিয়েছি এবং এখনও একই ফলাফল।
এক্সটেনশন ফাইলগুলি vendorমডিউলটিতে এখনও আছে ।
আমি ফাইল অনুমতি বা মালিককে স্পর্শ করিনি।

ঠিক কি যায়:

  • ডাটাবেস সম্পর্কিত তথ্য মুছে ফেলা হয়
  • মডিউলটির নামটি টেবিল থেকে সরানো হয়েছে setup_module
  • মডিউল নামটি মুছে ফেলা হয়েছে app/etc/config.php

কি ভুল হয়:

  • মডিউল ফাইলগুলি vendorফোল্ডারে এখনও আছে ।
  • কনসোল কমান্ড শেষ হয় না।

কনসোল আউটপুট:

আপনি কোড এবং / অথবা ডাটাবেস সারণীগুলি সরাতে চলেছেন। আপনি কি নিশ্চিত? [Y / N] y
রক্ষণাবেক্ষণ মোড সক্ষম করে
আপনি কোনও ডাটাবেস ব্যাকআপ ছাড়াই ডেটা সরিয়ে ফেলছেন।
[নেমস্পেস] এর ডেটা অপসারণ করা _ [মডিউল]
ডাটাবেসের মডিউল রেজিস্ট্রি থেকে [মডিউল]
সরানো হচ্ছে [নামস্পেস] _ [মডিউল] মোতায়েন কনফিগারেশনের মডিউল তালিকা
থেকে ম্যাজেন্টো কোডবেস থেকে কোড সরানো:

এটির পরে এটি কেবল স্তব্ধ।

আনইনস্টল প্রক্রিয়াটি শেষ করার কোনও উপায় আছে, বা কমপক্ষে এটি ডিবাগ করুন?


এমনকি আমি একই সমস্যার মুখোমুখি হয়েছি। এই জন্য সমাধান কি . আপনার কোনও ধারণা আছে
ভিগনা এস

বেপারটা এমন না. এক পর্যায়ে এটি কাজ শুরু করে। প্রদত্ত উত্তরের পরে আমি একটি ডিবাগ করেছি তবে প্রাসঙ্গিক কোনও কিছু পাইনি।
মারিয়াস

ঠিক আছে ধন্যবাদ!!! সুতরাং মডিউলটি কীভাবে আনইনস্টল করবেন
ভিগনা এস

প্রশ্নের তালিকাভুক্ত কমান্ডটি চালান
মারিয়াস

আমি কেবল এটি ব্যবহার করছি তবে এটি আটকে গেছে, 'ম্যাজেন্টো কোডবেস থেকে কোড সরানো হচ্ছে:'। যার পরে এটি স্তব্ধ হয়ে যায়
ভিগনা এস

উত্তর:


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 / লোকাল / বিন / ইএ-পিএইচপি 72 bin / বিন / সুরকার / সুরকার / সংস্করের মতো সুরকারকে কল করতে হবে এবং সম্ভবত এটির জন্য কনফিগারেশনটি প্রস্তুত নয় ...
ইফিগেনি

0

যখন আমরা বিন / ম্যাজেন্টো মডিউলটি চালিত করি : মডিউল_নাম আনইনস্টল করুন তারপরে এটি সুরকার আপডেট কমান্ডটি ব্যাক প্রসেসে চালায় যা ক্লাইমে প্রদর্শিত হয় না।

আমরা যখন সুরকার আপডেটটি পরিচালনা করি তখন এর জন্য ব্যবহারকারীর নাম এবং পাসওয়ার্ড দরকার হয় যা আপনার ম্যাজেন্টো মার্কেটপ্লেস অ্যাকাউন্টে। আপনি যদি না তৈরি করেন তবে:

প্রমাণীকরণ কী তৈরি করতে:

  1. ম্যাজেন্টো মার্কেটপ্লেসে লগ ইন করুন । আপনার যদি অ্যাকাউন্ট না থাকে তবে রেজিস্টার ক্লিক করুন।

  2. পৃষ্ঠার উপরের ডানদিকে আপনার অ্যাকাউন্টের নামটি ক্লিক করুন এবং আমার প্রোফাইল নির্বাচন করুন।

  3. মার্কেটপ্লেস ট্যাবে অ্যাক্সেস কীগুলি ক্লিক করুন।

এখানে চিত্র বর্ণনা লিখুন

আপনার ম্যাজেন্টো মূল ডিরেক্টরিটি থেকে এই কমান্ডটি চালান ln -s ~/.composer/auth.json var/composer_home/ এটি আপনার সুরকার auth.json এর প্রতীকী লিঙ্ক তৈরি করবে

যখন আমরা মডিউলটি চালিত করি: আনইনস্টল করুন তারপরে এটি magento var ফোল্ডার বা ম্যাজেন্টো মূল ডিরেক্টরিতে auth.json পরীক্ষা করে।

এটা আমার জন্য কাজ করে।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.