Estou tentando desinstalar um módulo (próprio) que instalei via compositor usando a CLI com este comando:
bin/magento module:uninstall -r [Namespace]_[Module]
Com base na resposta fornecida aqui por @RyanH, criei o Setup/Uninstall.php
arquivo que remove os dados relacionados ao banco de dados do módulo.
Isso funciona perfeitamente, mas o procedimento de desinstalação trava.
Até deixei o script em execução durante a noite e ainda o mesmo resultado.
Os arquivos de extensão ainda estão lá no vendor
módulo.
Não toquei nas permissões ou no proprietário do arquivo.
O que dá certo:
- os dados relacionados ao banco de dados são removidos
- o nome do módulo é removido da tabela
setup_module
- o nome do módulo é removido de
app/etc/config.php
.
O que dá errado:
- os arquivos do módulo ainda estão lá na
vendor
pasta. - o comando do console não termina.
Saída do console:
Você está prestes a remover tabelas de código e / ou banco de dados. Você tem certeza? [S / N] y
Ativando o modo de manutenção
Você está removendo dados sem um backup do banco de dados.
Removendo dados de [Namespace] _ [Module]
Removendo [Namespace] _ [Module] do registro do módulo no banco de dados
Removendo [Namespace] _ [Module] da lista de módulos na configuração de implantação
Removendo código do Magento codebase:
Depois disso, apenas trava.
Existe alguma maneira de terminar o processo de desinstalação ou pelo menos depurá-lo?
Respostas:
A parte do processo de desinstalação em que ele está localizado pode ser encontrada em
setup/src/Magento/Setup/Model/ModuleUninstaller.php
:Basicamente, ele lista os pacotes a serem removidos e, em seguida, executa um
composer remove
comando nesses pacotes através delib/internal/Magento/Framework/Composer/Remove.php
:Você pode encontrar o
runComposerCommand
método emvendor/magento/composer/src/MagentoComposerApplication.php
:Para mim, algo acontece ao longo do caminho aqui e essas funções são onde você deve começar a depurar.
Talvez o
composer.json
arquivo do módulo esteja ausente ou com um erro.fonte
quando rodamos o módulo bin / magento: uninstall Module_Name , ele executa o comando update do compositor também no processo anterior que não é mostrado no cli.
Quando executamos a atualização do compositor, é necessário um nome de usuário e senha na sua conta do Magento Market. se você ainda não criou:
Para criar chaves de autenticação:
Faça login no Magento Marketplace . Se você não possui uma conta, clique em Registrar.
Clique no nome da sua conta no canto superior direito da página e selecione Meu perfil.
Clique em Chaves de acesso na guia Marketplace.
Execute este comando no diretório raiz do magento,
ln -s ~/.composer/auth.json var/composer_home/
pois ele criará um link simbólico do seu compositor auth.jsonQuando rodamos o módulo: uninstall, verifique o auth.json na pasta magento var ou no diretório raiz do magento.
Isso funciona para mim.
fonte
O compositor parou de carregar dados de repo.magento.com
Meu auth.json não estava correto. Essa decisão me ajudou
Como usar o novo repo.magento.com
fonte