I think it will be really beneficial to have a check to see if database tables need to be updated and then update them rather than replacing the whole thing.
I am running an e-commerce store and need to update some product images, prices, and structures but cannot push that live because it will overwrite everything. This process of product updates is a massive one and there will definitely be orders coming through on the production and if I push staging to live it will remove those orders or any new products that I might of added in the mean time. I would think that this is a standard procedure rather than a full over write but clearly not. Am I mistaken or can this be done?