okay, i understand your confusion, sorry
if you make structural changes -- new or different columns, new tables, etc. -- you will eventually have to make those changes to the live database, yes?
this should not be done with drop-and-restore, not to the live database
it works between live and dev, and between dev and test, but not in the other direction, except in the case of test to dev, where it might be used for convenience, if needed
but eventually you will need to promote the stuctural changes to the live databasem and that should only be done with a script (series of SQL statements that performs the changes) with due regard for the live data in the live tables
i'm sorry if i glossed over this or gave you a wrong impression