Aparentemente, agora o Magento 2 suporta scripts de desinstalação que permitem a modificação do esquema db ao desinstalar um módulo (horay !!).
Conforme explicado aqui, isso funciona apenas para o módulo instalado via compositor.
(Espero que funcione no futuro para todos os módulos, mas essa é uma questão diferente).
Digamos que eu tenho um módulo chamado Testing_Demo
.
Este módulo faz três coisas que eu gostaria de remover ao desinstalá-lo.
- adiciona uma tabela chamada
testing_demo
. Então eu preciso largar isso. - adiciona um atributo de produto chamado
demo
. Portanto, isso precisa ser removido - possui algumas configurações
system->configuration
que podem ou não ser armazenadas na tabelacore_config_data
. Todas essas configurações têm o caminhotesting_demo/...
. Portanto, esses precisam ser removidos também.
Como deve ser o script de desinstalação do meu módulo?
module
magento2
install-script
composer
Marius
fonte
fonte
Respostas:
Pesquisando na base de código para
UninstallInterface
dá\Magento\Setup\Model\UninstallCollector
.Se você procurar por
UninstallCollector
isso, verá que é usado no\Magento\Setup\Console\Command\ModuleUninstallCommand
. Particularmente relevante:Juntos, podemos supor:
Uninstall
classe em{module}\Setup\Uninstall.php
.Magento\Framework\Setup\UninstallInterface
.uninstall
método que contenha qualquer lógica necessária.Então, aqui está o seu esqueleto:
Remova quaisquer tabelas, colunas ou dados usando os métodos apropriados. Veja
\Magento\Framework\DB\Adapter\AdapterInterface
, disponível como$setup->getConnection()
.fonte