Я пытаюсь удалить модуль (мой), который я установил через композитор, используя CLI с этой командой:
bin/magento module:uninstall -r [Namespace]_[Module]
Основываясь на ответе, предоставленном здесь @RyanH, я создал Setup/Uninstall.php
файл, который удаляет связанные с базой данных данные модуля.
Это работает отлично, но процедура удаления зависает.
Я даже оставил сценарий, работающий в течение ночи и все тот же результат.
Файлы расширений все еще есть в vendor
модуле.
Я не трогал файл разрешения или владельца.
Что идет правильно:
- данные, связанные с базой данных, удалены
- имя модуля удалено из таблицы
setup_module
- имя модуля удалено из
app/etc/config.php
.
Что идет не так:
- файлы модуля все еще находятся в
vendor
папке. - консольная команда не завершается.
Консольный вывод:
Вы собираетесь удалить таблицы кода и / или базы данных. Вы уверены? [Y / N] y
Включение режима обслуживания
Вы удаляете данные без резервной копии базы данных.
Удаление данных [Пространство имен] _ [Модуль]
Удаление [Пространство имен] _ [Модуль] из реестра модулей в базе данных
Удаление [Пространство имен] _ [Модуль] из списка модулей в конфигурации развертывания
Удаление кода из базы кода Magento:
После этого просто висит.
Есть ли способ завершить процесс удаления или хотя бы отладить его?
Ответы:
Часть процесса удаления, где он находится, можно найти в разделе
setup/src/Magento/Setup/Model/ModuleUninstaller.php
:По сути, в нем перечислены пакеты, которые необходимо удалить, а затем выполните
composer remove
команду для этих пакетов с помощьюlib/internal/Magento/Framework/Composer/Remove.php
:Вы можете найти
runComposerCommand
метод вvendor/magento/composer/src/MagentoComposerApplication.php
:Для меня что-то происходит по пути здесь, и эти функции, где вы должны начать отладку.
Возможно, ваш
composer.json
файл модуля отсутствует или имеет ошибку.источник
когда мы запускаем модуль bin / magento: деинсталлируем Module_Name, затем он запускает команду обновления composer также в обратном процессе, который не показан в cli.
Когда мы запускаем обновление composer, тогда для него требуется имя пользователя и пароль, которые вы используете для входа в ваш magento marketplace. если нет, то создайте:
Чтобы создать ключи аутентификации:
Войдите в Magento Marketplace . Если у вас нет учетной записи, нажмите Зарегистрироваться.
Нажмите на имя вашей учетной записи в правом верхнем углу страницы и выберите Мой профиль.
Нажмите Ключи доступа на вкладке Marketplace.
Запустите эту команду из корневого каталога magento,
ln -s ~/.composer/auth.json var/composer_home/
она создаст символическую ссылку вашего композитора auth.jsonКогда мы запускаем модуль: удалите, тогда он проверяет auth.json в папке magento var или в корневом каталоге magento.
Это работает для меня.
источник
Композитор остановлен в загрузке данных с repo.magento.com
Мой auth.json был не верен. Это решение помогло мне
Как использовать новый repo.magento.com
источник