Passa al contenuto
Menu
È necessario essere registrati per interagire con la community.
La domanda è stata contrassegnata
1 Rispondi
213 Visualizzazioni

Hello,

I am trying to deploy Odoo in Clever Cloud, an European cloud provider.
Clever Cloud has a managed PostgreSQL service, where you get a PG instance. In order to connect to it, they give you the host, port, user password and database name. I have owner right on that database, but no right to create or connect any other database on the host. And that's the part is blocking me to deploy Odoo on it, it seems that Odoo needs to have connect access to a database named 'postgres' in the database host.

That's my config file:

[options]

db_host = bixdjXXXXXXXXXXX-postgresql.services.clever-cloud.com

db_port = 50013

db_user = u7mtpoXXXXXXXXXX

db_password = ******************

db_name = bixdjXXXXXXXXXXX

dbfilter = bixdjXXXXXXXXXXX

database = bixdjXXXXXXXXXXX

addons-path=addons


I have tried with db_name only, database only and both, same result.

I have tried also passing the --database option to the command line, but I always find the same error :


2025-08-27T11:28:05.202Z: psycopg2.OperationalError: connection to server at "bixdjXXXXXXXXXXX-postgresql.services.clever-cloud.com" (xx.xx.xx.xx), port 50013 failed: FATAL:  permission denied for database "postgres"
2025-08-27T11:28:05.202Z: DETAIL:  User does not have CONNECT privilege



What am I doing wrong?

Avatar
Abbandona

Hmm, configuration seems valid for me.
Could you try passing the `--no-database-list` parameter when starting Odoo?

Autore

That's my current command line `python3 odoo-bin -c ./clevercloud/odoo.conf --no-database-list --database=bixdjXXXXXXXXXXX`

Autore

Tried also @Dawid Gacek solution, didn't work:

2025-08-27T14:01:40.764Z: Running `python3 odoo-bin -c ./clevercloud/odoo.conf --no-database-list -i base --db-filter=bixdj7mlnllvfru6thv0 --database=bixdj7mlnllvfru6thv0` instead of WSGI
2025-08-27T14:01:42.674Z: 2025-08-27 14:01:42,674 2790 INFO ? odoo: Odoo version 18.0
2025-08-27T14:01:42.675Z: 2025-08-27 14:01:42,675 2790 INFO ? odoo: Using configuration file at /home/bas/app_b51005d8-da63-40b8-992a-a38672136334/clevercloud/odoo.conf
2025-08-27T14:01:42.675Z: 2025-08-27 14:01:42,675 2790 INFO ? odoo: addons paths: ['/home/bas/app_b51005d8-da63-40b8-992a-a38672136334/odoo/addons', '/home/bas/.local/share/Odoo/addons/18.0', '/home/bas/app_b51005d8-da63-40b8-992a-a38672136334/addons']
2025-08-27T14:01:42.675Z: 2025-08-27 14:01:42,675 2790 INFO ? odoo: database: u7mtpoena6btco6u92hw@bixdj7mlnllvfru6thv0-postgresql.services.clever-cloud.com:50013
2025-08-27T14:01:42.713Z: 2025-08-27 14:01:42,712 2790 INFO ? odoo.sql_db: Connection to the database failed

I have reproduced your problem locally.


Please update the name of dbfilter​ parameter to db-filter​, as the parameter with name dbfilter​ does not exsist.

If this alone won't help, try to initialize your database:

python odoo-bin --database=<your_db_name> -i base --db-filter=<your_db_name>

Best Regards,

Dawid Gacek

Autore

But I already have the name in db_name, as shown in my config file.
I have looked ad your config file example, and I don't see any differences with mine. And it still insists to connect to 'postgres'.

Same thing if I try to force the database name in the commande line with -d or --database.

And in the code, I see lots of references to db_connect('postgres') that seems to indicate that it connects to the db called 'postgres'. 


No idea what happen, but I am pretty sure your comment "But I already have the name in db_name, as [...]" was to previous answer, and now I see it below my comment.

Let me know, if dbfilter​ -> db-filter in your config help.


Best Regards,

Dawid Gacek

Risposta migliore

This error is coming directly from PostgreSQL permissions.

FATAL:  permission denied for database "postgres"

DETAIL:  User does not have CONNECT privilege


Why it happens:

On most managed providers (like Clever Cloud, Heroku, etc.), the default postgres database is reserved for internal use.


Your database user has no CONNECT privilege to it, so if your app tries to connect to postgres, PostgreSQL will block it.


Fix

You need to make sure your application connects to the right database name, not the system one.


Check the credentials provided by Clever Cloud:

Host (server address)

Port (like 50013)

Database name (often a random string, not postgres)

Username

Password


Update your connection string / DATABASE_URL in your app to use that actual database name. For example: postgresql://USERNAME:PASSWORD@HOST:PORT/DATABASENAME


Replace DATABASENAME with the one given in your Clever Cloud dashboard (not postgres).


If you really need to use another database, you’d have to grant CONNECT manually:

GRANT CONNECT ON DATABASE mydb TO myuser;

…but on hosted services, you usually can’t grant privileges on postgres. That’s why you must connect to your assigned database instead.


If your correct database name is bixdjXXXXXXXXXXX

But from the error message, your Odoo is trying to connect to the postgres database, which your user doesn’t have rights for.


>>Correct Odoo configuration

Update your odoo.conf so it uses the right database name:


[options]

db_host = bixdjXXXXXXXXXXX-postgresql.services.clever-cloud.com

db_port = 50013

db_user = u7mtpoXXXXXXXXXX

db_password = ******************

db_name = bixdjXXXXXXXXXXX

dbfilter = bixdjXXXXXXXXXXX

addons-path = addons


>>Important Notes for Odoo


db_name must be your actual Clever Cloud DB name (bixdjXXXXXXXXXXX), not postgres.


dbfilter = bixdjXXXXXXXXXXX is fine if you want Odoo to only work with this single DB.


If db_name is missing or wrong, Odoo will try to connect to postgres by default → causing the permission denied error you saw.


After fixing, restart your Odoo service. It should now connect to your Clever Cloud PostgreSQL database without hitting the postgres DB.



Avatar
Abbandona
Post correlati Risposte Visualizzazioni Attività
0
ago 25
4
0
ago 25
7
0
ago 25
5
1
ago 25
137
1
ago 25
747