Difference between manual app update and store

Is there any significant difference in the app upgrade process between manually removing and replacing the app directory and upgrading from the app store?

I have an app that has undergone an amount of refactoring and changed from database schema xml definitions to Migrations etc.
When upgrading manually on my test instances, the upgrades went fine so I pushed it to the app store. When trying an upgrade from the store to my live instance, the app upgrade failed with the following message in the nextcloud.log file :-

"Cannot declare class OCA\\TwoFactorYubikey\\Migration\\Version000401Date20190415213034, because the name is already in use at \
/var\/www\/nextcloud\/apps\/twofactor_yubikey\/lib\/Migration\/Version000401Date20190415213034.php 

Doing an occ upgrade from the command line fixed the issue.

I’ve pulled the updated app from the app store.

Is there any way I can reproduce the exact upgrade process of the app store for troubleshooting without putting everyone else’s installation at risk?

I guess the biggest difference is that you didnt write whether you deleted the old app folder before.
So make sure to delete apps/twofactor_yubikey before uploading the new zip content.