How would you handle a situation where the underlying data needs to be transformed? For example, converting a text column to an int column?
It's impossible to handle every case, of course, such as when renames happen or data needs to be moved/inserted.
Migration scripts always need reviewing. Tools can get you most of the way there automatically, and help you test, but not all of the way.