A migration that looks correct in review can still corrupt data because review sees intent, not edge cases. You read the SQL, it says split the name into first_name and last_name and backfill from the existing column, and you approve it. Then the one-word customer names become empty first names, the three-word names drop their middle names, and the unique constraint on email stays intact only because the bad rows never got tested. The fix is not to stop generating migrations; it is to force ever...