this is what I do... I have a UML document that describes the database schema and instead of autogenerating it, I run a compile-time check to verify that the UML is in sync with the schema.
https://gist.github.com/ityonemo/9f3b8f86a04f2636ab308b1b1a3...