I personally don’t think multiple people should change the database schema (if you have multiple devs, only one should be in charge of data modelling / DBA), and my way of handling database changes is to do whatever you want on the dev database, and auto-patch the prod database based on schema changes.

That being said, if you’re going to do something like your approach, I find it’s important to make your patches idempotent (i.e. running them twice results in exactly the same thing as running them once), and use the information.schema as much as you can to avoid duplication and misinformation.