Alembic or Django native migrations for typical Postgres migrations, I prefer the first to second, because I can configure so much more. As for Clickhouse, it's been a wild manual migration ride, we are questioning ourselves whether to use Flyway, because being a tiny startup we don't have enough time to port the entire thing.