Or you rewrite queries on the fly with ProxySQL or similar to use the new column name, and then deploy the new code. Can even insert a momentary pause at the proxy layer so no queries hitting the old name sneak through while you do the rename.

This method doesn’t work as well with distributed DBs, but to be fair they’re a terrible idea for most use cases.