Knex
Imo you should actually differentiate your migrations between schema changes and data mutations. That allows you to use a more powerful tool like liquibase/flyway for schema yet use your preferred language (JS/TS) for data mutations which might need other libraries.
I'm curious if people have tried this approach before.