You only do additive changes. Only add columns etc. never remove them ... until all your old application code is no longer running.
It's what you have to do if you want less downtime. Normally it shouldn't span much more than 2-3 versions of application and it's rare that the annoying kind (say writing same data to "old" and "new" column) happens.
Or until it's been disabled by feature flags.