Is it possible to upgrade a fully synced node to archive node ? means can i download older states by changing gcmode to archive ? or i will have to start from scratch ?
Someone correct me if I'm wrong but as I've understood it archive node can be built from full node information.
Full node basically gets all blocks in history and processes them (more specifically: their transactions) to verify the results. An archive node does the same thing but it also saves state information between every transaction. So with full node you can't query "what was the balance of address X at block Y" without recalculating whole history before that - archive nodes provides this information.
Therefore I'd say at least in theory you can switch from full to archive but in reality I have no idea if clients support it. My guess is no as that's not a very common scenario and you could just start from the beginning anyway, but I might be wrong.