Delete a role and reassign what it owns
postgres roles & traffic
// what it does
Postgres refuses to drop a role that still owns tables or other objects, so the two-step is: reassign ownership to a successor role, then delete. The CLI surfaces both as first-class commands.
// shell
$ pscale role reassign mydb main <role-id> --successor app-rw$ pscale role delete mydb main <role-id>// gotcha
This is standard Postgres semantics, not a PlanetScale quirk — if `role delete` errors about dependent objects, it's telling you to run reassign first, not that something is broken.