#35394 closed Cleanup/optimization (needsinfo)
Warning if `postgres` database has been rename (e.g. DigitalOcean managed) — at Version 2
Reported by: | Jeffry Babb | Owned by: | nobody |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | 5.0 |
Severity: | Normal | Keywords: | postgres default db name |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
This warning is thrown if the postgres
database does not exist on the server. DigitalOcean renames this database to 'defaultdb' which seems to raise this error in dango/db/backends/postgresql/base.py
except (Database.DatabaseError, WrappedDatabaseError): if cursor is not None: raise warnings.warn( "Normally Django will use a connection to the 'postgres' database " "to avoid running initialization queries against the production " "database when it's not needed (for example, when running tests). " "Django was unable to create a connection to the 'postgres' database " "and will use the first PostgreSQL database instead.", RuntimeWarning, )
I have searched in the LIBPQ parameters can can't find a setting that allows me to specify this name change as Django seems to have hard-coded the search for the postgres
db name or is looking for it in a key called 'service' around line 193 and 218 in base.py.
Change History (2)
comment:1 by , 7 months ago
Resolution: | → needsinfo |
---|---|
Status: | new → closed |
comment:2 by , 7 months ago
Description: | modified (diff) |
---|---|
Summary: | Warning if 'postgres' database has been rename (e.g. DigitalOcean managed) → Warning if `postgres` database has been rename (e.g. DigitalOcean managed) |
Note:
See TracTickets
for help on using tickets.
Hello Jeffry, thank you for taking the time to submit this report.
We would need more information to fully triage the issue, as I only see the
postgres
DB name hardcoded in two places:get_connection_params
in django/db/backends/postgresql/base.py, specifically whenNAME
is None.settings_to_cmd_args_env
in django/db/backends/postgresql/client.py when the dbname is unset.A few questions:
postgres
DB may be used in context such as things like running tests. Are you running the test suite in Heroku for example?I'll be closing this ticket as
needsinfo
following the ticket triaging process.