This has happened to me a couple of times while testing modules:
You disable the module, erase the files and decide to drop the tables created by the module and empty the cache in order to do a clean reinstall of the module.
Only that this time, the module .install file is not executed.
Usually this is not much problem, since you can go in and copy/paste the MySQL code yourself.
But it's inconvenient, and in some modules the .install code is not that clear with conditional statements that check for upgrades, etc.
Is there a table that keeps track of installed modules and prevents the .install file from being ran?
I did find a couple of module related entries on the system table, another one on the sequence table and some in the variable table.
In this case, I was trying to debug some errors with the buddylist module in 4.7. I uninstalled it, dropped the database tables, erased the module, emptied the cache and remove all entries I found from the system, sequence and variable tables.
But when I try to reinstall the module, the .install file code is not executed.
Where should I look for to reset this flag?