If you go with (2), and you add a DB column in a PR, I suppose you include a script to update staging with the new content at the same time?
> I suppose you include a script to update staging
Essentially, yes. But if I write a script to do it on staging, why don't I write one for prod as well? Maybe I could even go beyond that. Make a simple tool to handle those scripts for me (that's migrations).
It requires some version control and deployment discipline, which is something you probably wouldn't have if you're adding columns directly on the prod db.
I learned very early that no developer should have access to prod db. Not even read access. No writing, definitely. Schema changes by a single developer outside version control should be impossible.