You are here

protected function ModuleInstaller::uninstallSchema in Drupal 9

Same name and namespace in other branches
  1. 10 core/lib/Drupal/Core/Extension/ModuleInstaller.php \Drupal\Core\Extension\ModuleInstaller::uninstallSchema()

Removes all tables defined in a module's hook_schema().

@internal

Parameters

string $module: The module for which the tables will be removed.

1 call to ModuleInstaller::uninstallSchema()
ModuleInstaller::uninstall in core/lib/Drupal/Core/Extension/ModuleInstaller.php
Uninstalls a given list of modules.

File

core/lib/Drupal/Core/Extension/ModuleInstaller.php, line 669

Class

ModuleInstaller
Default implementation of the module installer.

Namespace

Drupal\Core\Extension

Code

protected function uninstallSchema(string $module) : void {
  $tables = $this->moduleHandler
    ->invoke($module, 'schema') ?? [];
  $schema = $this->connection
    ->schema();
  foreach (array_keys($tables) as $table) {
    if ($schema
      ->tableExists($table)) {
      $schema
        ->dropTable($table);
    }
  }
}