We use prisma's db push to change schemas. Anything higher level we do with our own patch functions. I think this is how it works in ruby too, or how one place or another did it.
The db push deals with constraints, indexes, types, etc. we do everything else.
What do you use for up/down migration if you don't mind sharing?