Hi HN, pgmigrate is a postgres schema migrations tool that is designed for modern deployment and operations. You can use the CLI or Docker container to manage migrations for projects in any language but if you use Golang it's also available as a library.
The github readme has the full explanation, but basically pgmigrate is "migrations done correctly" or "migrations without all the pain in the ass bullshit":
* pgmigrate uses postgres advisory locks to make it parallelizable
* It doesn't make you think about down migrations — they're not useful and unnecessary and a waste of time
* It runs out-of-order migrations
* It doesn't error if you and a coworker both commit migrations with the same sequence number
* It has ops commands for the rare occasions you need to manually mess with the migrations table state
* And it lets you turn schema conflicts into git conflicts by making it easy to dump your schema in a consistent format
* Oh, and you can squash migrations, too
I'd love to know what you think, and I hope that I can convince you to try it out. The plan is to charge businesses money for it while keeping it free for personal and open source use, sort of like Orb stack, but keeping the source open.
Are there any features you'd like to see added? The main one I've heard people ask for is automatic migration generation via diffing, like migra or skeema, but I'm not convinced it's useful enough to be worth the implementation hassle.