Próbuję odinstalować moduł (mój), który zainstalowałem za pomocą kompozytora za pomocą interfejsu CLI za pomocą tego polecenia:
bin/magento module:uninstall -r [Namespace]_[Module]
Na podstawie odpowiedzi udzielonej tutaj przez @RyanH stworzyłem Setup/Uninstall.php
plik, który usuwa dane modułu związane z bazą danych.
Działa to doskonale, ale procedura dezinstalacji zawiesza się.
Nawet zostawiłem skrypt działający przez noc i wciąż ten sam rezultat.
Pliki rozszerzeń są nadal w vendor
module.
Nie dotknąłem uprawnień do plików ani właściciela.
Co idzie dobrze:
- dane związane z bazą danych są usuwane
- nazwa modułu jest usuwana z tabeli
setup_module
- nazwa modułu została usunięta z
app/etc/config.php
.
Co idzie nie tak:
- pliki modułów są nadal w
vendor
folderze. - polecenie konsoli nie kończy się.
Dane wyjściowe konsoli:
Zamierzasz usunąć kod i / lub tabele bazy danych. Czy na pewno? [T / n] y
Włączanie trybu konserwacji
Usuwasz dane bez kopii zapasowej bazy danych.
Usuwanie danych z [Przestrzeń nazw] _ [Moduł]
Usuwanie [Przestrzeń nazw] _ [Moduł] z rejestru modułu w bazie danych
Usuwanie [Przestrzeń nazw] _ [Moduł] z listy modułów w konfiguracji wdrożenia
Usuwanie kodu z bazy kodu Magento:
Po tym po prostu się zawiesza.
Czy jest tak czy inaczej, aby zakończyć proces odinstalowywania, czy przynajmniej go debugować?
Odpowiedzi:
Część procesu odinstalowywania, w której ręce są dostępne, można znaleźć pod
setup/src/Magento/Setup/Model/ModuleUninstaller.php
:Zasadniczo zawiera listę pakietów do usunięcia, a następnie uruchom
composer remove
polecenie na tych pakietach poprzezlib/internal/Magento/Framework/Composer/Remove.php
:Możesz znaleźć
runComposerCommand
metodę wvendor/magento/composer/src/MagentoComposerApplication.php
:Po drodze coś mi się dzieje, a te funkcje powinny rozpocząć debugowanie.
Być może
composer.json
brakuje pliku modułu lub wystąpił błąd.źródło
kiedy uruchamiamy moduł bin / magento: odinstaluj Module_Name, następnie uruchom polecenie aktualizacji kompozytora również w procesie wstecz, który nie jest pokazany w cli.
Kiedy uruchamiamy aktualizację kompozytora, wymaga ona nazwy użytkownika i hasła do konta magento marketplace. jeśli nie masz, utwórz:
Aby utworzyć klucze uwierzytelniające:
Zaloguj się do Magento Marketplace . Jeśli nie masz konta, kliknij Zarejestruj.
Kliknij nazwę swojego konta w prawym górnym rogu strony i wybierz Mój profil.
Kliknij opcję Klucze dostępu na karcie Marketplace.
Uruchom to polecenie z katalogu głównego magento
ln -s ~/.composer/auth.json var/composer_home/
, aby utworzyć symboliczne łącze do twojego kompozytora auth.jsonKiedy uruchamiamy moduł: odinstaluj, a następnie sprawdź auth.json w folderze magento var lub katalogu głównym magento.
To działa dla mnie.
źródło
Kompozytor zatrzymał ładowanie danych z repo.magento.com
Mój auth.json był niepoprawny. Ta decyzja pomogła mi
Jak korzystać z nowej repo.magento.com
źródło