Schema upgrades should be reversible (also other transformations, actually)

December 17, 2020 [Programming, Tech]

Are you writing schema upgrade code? Then I humbly suggest you take the time to write schema downgrade code too.

"Why would I do that?" you might well ask, "I won't ever need to downgrade."

Now, I imagine you're expecting me to say you actually will need to downgrade, but that isn't what I'm saying.

Can you please get on with what you are actually saying?

Whevener you write code to transform something, be it a schema upgrade, some serialisation, or something else, I would highly recommend that you write code to transform it in both directions.

Reasons:

Also:

Bidirectional scheme up/downgrades are not easy in SQL, but probably worth it. If you're writing transformation code in a normal programming language, it's really not that difficult, and I predict it will be worth it.