|Think about Loose Coupling|
The first practical problem I run into with this module is that the user really isn't free to choose any name for a field -- in your example the use of 'when' in unacceptable in PostgreSQL. Perhaps some kind of target setting like 'forMYSQL' or 'forPostgres' would generate some kind of error when a reserved word is utilized for a field name (or maybe munge it with something to make it acceptable).
Second, I would prefer to be able to override the regexes that define what a particular thing is -- a date, a numeric type, or a string -- with my own regexes.
Third, some RDBMS allow for custom data types to be defined. This module should have some allowance for those.
Otherwise I think this module is a good idea. The name seems okay. I would slap some pod into it and give it a very low version number.
BTW, this line is wrong:
Celebrate Intellectual Diversity