Gỡ cài đặt mô-đun


10

Tôi đang cố gắng gỡ cài đặt một mô-đun (của riêng tôi) mà tôi đã cài đặt qua trình soạn thảo bằng CLI bằng lệnh này:

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

Dựa trên câu trả lời được cung cấp ở đây bởi @RyanH Tôi đã tạo Setup/Uninstall.phptệp xóa dữ liệu liên quan đến cơ sở dữ liệu của mô-đun.

Điều này hoạt động hoàn hảo nhưng thủ tục gỡ cài đặt bị treo.

Tôi thậm chí đã để lại kịch bản chạy qua đêm và vẫn cho kết quả tương tự.
Các tập tin mở rộng vẫn còn đó trong vendormô-đun.
Tôi đã không chạm vào quyền hoặc tập tin chủ sở hữu.

Điều gì đúng

  • cơ sở dữ liệu liên quan bị xóa
  • tên mô-đun được xóa khỏi bảng setup_module
  • tên mô-đun được xóa khỏi app/etc/config.php.

Điều gì sai

  • các tập tin mô-đun vẫn còn đó trong vendorthư mục.
  • lệnh console không kết thúc.

Bảng điều khiển đầu ra:

Bạn sắp xóa mã và / hoặc bảng cơ sở dữ liệu. Bạn có chắc không? [Y / N] y
Kích hoạt chế độ bảo trì
Bạn đang xóa dữ liệu mà không cần sao lưu cơ sở dữ liệu.
Xóa dữ liệu của [Không gian tên] _ [Mô-đun]
Xóa [Không gian tên] _ [Mô-đun] khỏi sổ đăng ký mô-đun trong cơ sở dữ liệu
Xóa [Không gian tên] _ [Mô-đun] khỏi danh sách mô-đun trong cấu hình triển khai
Xóa mã khỏi cơ sở mã Magento:

Sau này nó chỉ bị treo.

Có cách nào để kết thúc quá trình gỡ cài đặt, hoặc ít nhất là gỡ lỗi nó không?


ngay cả tôi cũng đang đối mặt với cùng một vấn đề. Giải pháp cho điều này là gì . Bạn có ý kiến ​​gì không
Vigna S

Không chính xác. Tại một thời điểm nó bắt đầu làm việc. Tôi đã gỡ lỗi theo câu trả lời được cung cấp nhưng không tìm thấy gì liên quan.
Marius

được rồi, cảm ơn bạn !!! Vậy làm thế nào để gỡ cài đặt mô-đun
Vigna S

Chạy lệnh được liệt kê trong câu hỏi
Marius

Tôi chỉ sử dụng cái đó nhưng nó bị kẹt trong đó, 'Xóa mã khỏi Magento codebase:'. Sau đó nó bị treo
Vigna S

Câu trả lời:


3

Một phần của quá trình gỡ cài đặt là bàn tay có thể được tìm thấy trong 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);
}

Về cơ bản, nó liệt kê các gói cần loại bỏ và sau đó chạy composer removelệnh trên các gói đó thông qua lib/internal/Magento/Framework/Composer/Remove.php:

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

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

Bạn có thể tìm thấy runComposerCommandphương thức trong 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();
}

Đối với tôi điều gì đó xảy ra dọc đường ở đây và những chức năng đó là nơi bạn nên bắt đầu gỡ lỗi.

Có thể composer.jsontập tin mô-đun của bạn bị thiếu hoặc có lỗi.


tập tin ccmCPer của tôi là ở đó. Đây có vẻ là một nơi tốt để bắt đầu gỡ lỗi. Cảm ơn.
Marius

nhiều năm sau, điều này đã giúp tôi hiểu lý do tại sao việc gỡ cài đặt của tôi không hoạt động - tôi phải gọi nhà soạn nhạc như / usr / local / bin / ea-php72 ~ / bin / composer / composer.phar và rõ ràng cấu hình không phù hợp với nó ...
iphigenie

0

Khi chúng tôi chạy mô-đun bin / magento: gỡ cài đặt Module_Name thì nó cũng chạy lệnh cập nhật trình soạn thảo trong quá trình quay lại không được hiển thị trong cli.

Khi chúng tôi chạy bản cập nhật của nhà soạn nhạc thì nó yêu cầu tên người dùng và mật khẩu là tài khoản thị trường magento của bạn. nếu bạn chưa tạo thì:

Để tạo khóa xác thực:

  1. Đăng nhập vào Thị trường Magento . Nếu bạn không có tài khoản, bấm Đăng ký.

  2. Nhấp vào tên tài khoản của bạn ở góc trên bên phải của trang và chọn Hồ sơ của tôi.

  3. Nhấp vào Khóa truy cập trong tab Thị trường.

nhập mô tả hình ảnh ở đây

Chạy lệnh này từ thư mục gốc magento của bạn, ln -s ~/.composer/auth.json var/composer_home/ nó sẽ tạo liên kết tượng trưng của nhà soạn nhạc auth.json

Khi chúng tôi chạy mô-đun: gỡ cài đặt thì nó kiểm tra auth.json trong thư mục magento var hoặc thư mục gốc magento.

Nó làm việc cho tôi.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.