I use dbmate and for a deployment I package up the migration files into a docker container which runs and then applies the changes.
Firstly I use a devcontainer for development so I know my versions line up. dbmate uses .sql files which also makes things a lot easier.
You can see my setup here https://github.com/bionic-gpt/bionic-gpt
Have a look at the CONTRIBUTING.md to get an idea of the dev workflow.