Applying DB migrations - Best practises

Hi everyone, I need a bit of help.

In production servers, we often have to run migration scripts manually or in an autonomous way to perform some type of schema changes / update keys or anything for the new tag to be deployed. What is the best approach for these migrations, considering revert in tags due to any failure or dependent tag failure (breaking changes)? Even to create backups, assume we have huge amounts of data and backups could be costly.

Waiting to hear your reply and what you follow…!

Thanks

I am a big fan of using polymorphic design pattern as described in Building with Patterns: The Schema Versioning Pattern | MongoDB Blog to do such a thing.