Bench Update/Upgrade - Status of custom apps


I wanted to run bench update on the existing clients. But, the bench update breaks off saying that I will have to run a bench update --upgrade or use the bench switch-to-master or pin it down to the version 6. Am not sure which step to take. Though, I would like to upgrade the version on the existing client, it also gives a warning that the upgrade will break the existing custom apps.

So, what should I do to run an upgrade without breaking off the app? Or, can I remove the app, run an upgrade and install the app again from github? Or, should I just do a bench switch-to-master?

Actually, the client is quite critical and we cannot afford to lose time or data. Please suggest.


Create a staging server, install V6 copy files, database, apps (custom) from production server.
Perform V7 upgrade on staging server, if everything works as expected, perform actual upgrade on production server.