11 comments

[ 2.7 ms ] story [ 28.3 ms ] thread
Why is it necessary to specify the database backend to use? Django already abstracts it away, so why should I make the (same) choice twice?

(I know it's not for caching because a database cache backend is mentioned separately).

You may not (probably dont even?) want to use the same choice for storing configuration as you want to use for storing general application data.
In the same vein yet different : http://django-configurations.readthedocs.org/en/latest/

Although, it looks like you can not have both the classic settings.py and django-constance at the same time, right ?

It would be nice to be able to have both backend, one for config var that hardly changes and one for settings that can by customize by someone not versed in IT through an admin page.

Is this much different than creating an admin-enabled extra_settings table with key and value fields?

I'm probably missing something.

I would assume that this module is using redis's pub/sub capabilities to push configuration out to django app servers whereas creating an extra_settings table would likely require polling.
Is this recommended over storing settings as environment variables?
I don't know about "recommended over" but it may perhaps be "a more advanced way to". It depends upon your needs.

Lets say that you're running a service that has 20 servers running a Django app, and you want to be able to update the configuration for these apps in real time. Can this be done easily using environment variables?

(Serious question. I haven't actually thought much about this, but my instinct is that it will be more difficult.)

I wonder why this is using Redis as opposed to something like zookeeper which is made for things like this?

http://zookeeper.apache.org/

I would guess that most folks have already found some use for Redis already so its likely installed.
So is this smart about multi-site Django installs? It would be awesome if it could figure out the correct Site object and settings from the hostname.

(I'm experimenting with django-dynamicsites-lite to do this but, while it appears to work, it is awfully hacky.)