function ModuleInstaller::uninstallSchema
Same name and namespace in other branches
- 11.x core/lib/Drupal/Core/Extension/ModuleInstaller.php \Drupal\Core\Extension\ModuleInstaller::uninstallSchema()
- 10 core/lib/Drupal/Core/Extension/ModuleInstaller.php \Drupal\Core\Extension\ModuleInstaller::uninstallSchema()
- 9 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 816
Class
- ModuleInstaller
- Default implementation of the module installer.
Namespace
Drupal\Core\ExtensionCode
protected function uninstallSchema(string $module) : void {
$schemaDefinition = $this->invoke($module, 'schema') ?? [];
if ($schemaDefinition instanceof Schema) {
$table_names = $schemaDefinition->tableNames();
}
else {
if (count($schemaDefinition) !== 0) {
@trigger_error("Not returning a Schema object from {$module}_schema() to " . __METHOD__ . " is deprecated in drupal:12.1.0 and is removed in drupal:13.0.0. See https://www.drupal.org/node/3557405", E_USER_DEPRECATED);
}
$table_names = array_keys($schemaDefinition);
}
$schema = $this->connection
->schema();
foreach ($table_names as $table) {
if ($schema->tableExists($table)) {
$schema->dropTable($table);
}
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.