#26197 closed New feature (duplicate)
DEFAULT_DB_ALIAS in settings
Reported by: | Marcin Nowak | Owned by: | nobody |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | dev |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
This is a reopened issue based on #21211.
DEFAULT_DB_ALIAS should be configured in settings for better code readability in multi-db projects, where "default" database works as a default .
The default database is aliased "default". When calling using()
we must provide name of connection. Passing "default" is not quite readable. I would like to rename "default" to something more precise, clean, readable. I don't want to change behaviour of the Django itself. Just want to rename the alias.
Workaround by making "default" connection empty does not work. Django raises an error when connection is not set. Defining "default" with some sqlite db is a bad idea, because something may write to it and error will not be reported.
Please make DEFAULT_DB_ALIAS
configurable in settings.
Change History (8)
comment:1 by , 9 years ago
Type: | Uncategorized → New feature |
---|---|
Version: | 1.9 → master |
comment:2 by , 9 years ago
Resolution: | → duplicate |
---|---|
Status: | new → closed |
comment:3 by , 9 years ago
Tim, I wrote everyting about requirements. They're simple and clean. Think about it a little, thanks!
comment:4 by , 9 years ago
Sorry, but I can't unilaterally accept design decisions like this. That's why it needs discussion on the mailing list. For example, the original authors of multi-database support may have considered and rejected the idea. As mentioned on the related ticket, we do our best to avoid new settings so any proposal for that needs a strong justification and a discussion.
comment:5 by , 9 years ago
Right. But this is not about design. Im not taking about enhancement of multi db support, but just about one setting. I will not discuss on mailing list because it is a waste of time. My suggestions, like a model.reload(), must wait approx 7 years for your agreement. My endless discussions about disabling migrations are next example. And so on...
I would like to make more contributions for Django, including patches and tests, but I can't pass through idea-wall... My English is too bad for this, I think.
So maybe tell me, please, what consequences might be after changing default db alias? How big is risk? Is it worth starting new discussion? I'm not asking about guys you've mentioned.
comment:6 by , 9 years ago
I asked Alex Gaynor, the original author of multi-db support and he said, "Probably a bad idea IMO, I think it makes things much more confusing cross-projects and the benefit isn't clear to me. There's no technical reason you can't do it though."
comment:7 by , 9 years ago
OK. There is no technical reason to do anything. I said what the reason was, and in fact it wasn't technical. Wow. Thanks!
comment:8 by , 9 years ago
Oh, I forgot one thing. When "default" is not defined, I'm getting a TECHNICAL problem:
raise ImproperlyConfigured("You must define a '%s' database" % DEFAULT_DB_ALIAS) django.core.exceptions.ImproperlyConfigured: You must define a 'default' database
Please note that I'm not using any kind of *DEFAULT* database, just explicite database A, B, C and so on.
Removal of "default" connection is not possible (because it's a part of Django` db layer design), so I'm asking to rename "default" to "A" or "B" or "C", etc. As you see I have a technical reason - Django won't start without "default" connection defined.
The appropriate course for reopening a "wontfix" ticket is a discussion on the DevelopersMailingList. Please raise your rationale there, thanks!