Two years ago we agreed to hack it up quickly in PHP, but product promised us—PROMISED—that we would have time to go back and clean it up.
If "product" is deciding how much time engineers have, then the organization is fucked and deserves to fail. Running a technology company like that is like letting 5-year-olds fly a plane.
If you’re a mature, business-focused engineering leader, you might grab some coffee, sit Cindy and Scott down, and tell them something like this:
“Cindy, I’m sorry to hear that you’re getting bored doing so much production DB work, but realistically it would take you at least 40 hours of work to write, test, and deploy a migration utility, right? So if you’re spending a half hour a day on migrations, it would be 80 working days before we saw a return on our investment—that’s like 4 months, and that’s just too long for me to sanction—precisely because you’re such a valuable member of the team, and I can’t spare so much of your time right now away from our feature backlog. We can touch base if the migration workload increases too much, OK? Until then, I have to ask you to put your head down and be a team player.
I agree that that's a wrong approach. I go further. That hypothetical manager is being a condescending, passive-aggressive dickhead. "Too long for me to sanction?" What ever happened to supporting your people? I can't afford your time? Are engineers slaves now? If I got that ration of shit, I'd be changing jobs in a week.
I agree that the cost-center mentality is toxic, but the OP doesn't go far enough. OP seems to think that non-technologists can run technology companies. We have mountains of evidence that shows that it doesn't work. We need something like what the lawyers have (lawyers cannot, by law, report to non-lawyers) if we want to see actual technical progress in this country.