I worked for a company, which had hooks on our source control server, which on a commit, would run a script, which at it's core created a mysql schema dump from our dev and staging databases, and from the diff between those schemas, it would create an sql script which if run, would allow a third database (a copy of staging) to be altered to produce a database with the same schema as dev, but containing all the data on staging. It would then subsequently run all tests and if they succeeded, it would present the sql delta script, as safe to run on production.
As long as you have an event, at which point you could run a script, you could similarly generate an sql script, that moves the schema forward to the new delta.
The alternative would be simply to keep track of the sql schema, in version control at each change, but this would then mean it'd need a human to work out (from the unified diff), what sql would be needed to implement the change.