I can't figure how it is possible that the table I define in a hook_schema is created when I enable my module, but it isn't deleted when I uninstall the module (after disabling). Drupal 7 documentation sais that the table should be automatically created and deleted when these events occours. Here is the relevant part of the code inside `my_module.install`: function my_module_schema(){ $schema = array(); $schema["my_module_table_xyz"] = array( ... ); return $schema; } I don't know if it could be related to the difference between the modue name and the table name... or from the code present in the `hook_uninstall`... or something else... Considering I also define a node type, the `hook_uninstall` should delete it (see following code), then `system` should automatically uninstall previously defined schema. function my_module_uninstall(){ ... node_delete_multiple(...); // delete custom fields node_type_delete(...); field_purge_batch(...); } What do you think about? Thanks **NOTE:** I use Drush to disable, uninstall and reinstall the module and I get the error `Table my_module_table_xyz already exist`.