I've been executing migrations for almost two decades and I only feel safe when I can run them against a replica first, no matter what the automated checks tell. There are state-dependent gotchas every where.