Moduł został usunięty, ale tabele pozostały w bazie danych w Magento2

10

Utworzyłem jeden moduł / rozszerzenie za pomocą skryptu instalatora w magento2.

Potem go usunąłem, ale tabele w bazie danych nadal pozostają takie, jakie są.

czy ktoś może mi powiedzieć, jak całkowicie odinstalować moduł / rozszerzenie i usunąć tabele rozszerzeń / modułów z bazy danych?

Surya
źródło

Odpowiedzi:

11

Jeśli moduł zostanie zainstalowany za pomocą kompozytora, możesz utworzyć Setup/Uninstall.phpplik, który zostanie uruchomiony podczas działaniabin/magento module:uninstall -r [Namespace]_[Module] .

Uninstall.phpPlik powinien wyglądać tak:

<?php

namespace Namespace\Module\Setup;

class Uninstall implements \Magento\Framework\Setup\UninstallInterface
{
    public function uninstall(
        \Magento\Framework\Setup\SchemaSetupInterface $setup,
        \Magento\Framework\Setup\ModuleContextInterface $context
    ) {
        if ($setup->tableExists('table_name_here')) {
            $setup->getConnection()->dropTable('table_name_here');
        }
    }
}

Jeśli moduł został zainstalowany ręcznie, trzeba będzie ręcznie wyczyścić bazę danych, a także kupić upuszczając tabele dodane przez moduł.

Marius
źródło
Zainstalowałem moduł ręcznie
Surya,
Następnie musisz samodzielnie wyczyścić bazę danych.
Marius
1
Mam ten sam problem. usunąłem tabele ręcznie, ale nie mogę ich ponownie zainstalować przy użyciu installer script.
Cześć