I've been reading a few articles and StackExchange posts (e.g. What are truffle migrations?) about Truffle Migrations, but I still don't get it: why do we need them?
It seems they do only one thing (correct me if I'm wrong): store a number in a contract so we know which (version of) the contracts we already deployed.
Thing is, deploying a contract and making transactions isn't cheap: it means spending Ether and also increasing the size of the blockchain forever. It seems like a heavy cost for just storing an integer we could store locally for example.
So I'm wondering: did I miss other features offered by Truffle migrations? Why don't we store that information locally (or somewhere else)?