Normally I’d prefer testing more isolated units, but if it’s your own data access, just write the integration tests. They’re at least implicitly part of your “unit” anyway.
And the only team capable of zero-downtime schema changes uses a minimal DSL to SQL lib.
[0] Django, SQLAlchemy, Active Record, Piccolo, Tortoise, SQLModel, peewee
My experience here is quite limited, so I'm inclined to defer to yours. With that caveat, I find that ORMs play more nicely with my IDE (e.g. I can rename a column name and automatically update all call sites) and often raise early warnings if their declarative classes are out of sync with the underlying table schema.
[0]: https://hackage.haskell.org/package/persistent-2.14.5.0/docs...