They actually have a very impressive dedicated database service: https://postgres.heroku.com/
It supports scaling vertically by throwing in more cache, faster CPU, etc. Once you outgrow that, it supports horizontal scaling by replicating to read-only slaves.
I'm aware as we are running on heroku here, but it gets expensive quick and your options are more limited than if you roll your own. Then again, that goes for the whole platform.
I don't see how that has anything to do with the statement that I was referring to: "[their database services] don't seem reliable or scalable."
Unfortunately there is no official approach. The problem of partitioning and inconsistency to get more scalability is still evolving quite a bit.
I think things could be better, but it's not crystal clear what the right trade-off is for many people
I'm not complaining, but what is the official Heroku approach to things like DB sharding, etc.