Start here. This is the direct spoken answer to practice first.
Why this question matters
Schema migrations are where database design meets deployment reality. This question checks whether a candidate can change data safely while the app is live.
I would avoid making a breaking schema change and code change at the same instant. For a required column, I would first add it nullable or with a safe default, deploy code that writes it, backfill existing rows, then add NOT NULL after the data is complete. This expand-and-contract approach keeps old and new application versions compatible during deployment.