Our application serves multiple tenants. Each tenant has the schema with a few hundreds of tables and few functions.
We have 2000 clients so we have to create 2000 schemas in a single database.
That is one option but I wouldn't say you must. If you cannot get individual tables to be multi-tenant you are probably better off having one database per client on a shared cluster - at least given the size of the schema and number of clients.
I am working on a similar problem.
1 database per each client may be a killer when you have a connection pooler that creates a pool for a unique combination of (user,database).