Hey all,

we found an oddity with the way we read config files and directories on startup.

From the 0.10.0 docs 
(http://wiki.apache.org/couchdb/Breaking_changes#Modular_Configuration_Directories):

> CouchDB now loads configuration from the following places (glob(7) syntax) in 
> order:
> 
>       • PREFIX/default.ini
>       • PREFIX/default.d/*
>       • PREFIX/local.ini
>       • PREFIX/local.d/*


The way I've understand the config system is that system defaults go into 
default.ini and default.d/* and local overrides go into local.ini and local.d/*.

The reason (I believe) *.d/ exist is that in a distribution some special 
configuration can be added. For the sake of example, I think GeoCouch is a good 
example to think about this. A CouchDB installation with GeoCouch could have 
the following config files:

$etcdir/default.ini # system defaults
$etcdir/default.d/geocouch.ini # geocouch system defaults
$etcdir/local.ini # user settings overriding defaults in default.ini
$etcdir/local.d/geocouch.ini # user settings overriding defaults in 
default.d/geocouch.ini.

Now if one uses the /_config API, new settings are stored in 
local.d/geocouch.ini rather than local.ini (as I'd expect).

I'd therefore consider the load order to be wrong and propose to change it so 
that local.ini is the very last item in the config chain.

Alternatively, I'd like to know that there are flaws in my assumptions above :)

Cheers
Jan
-- 


Reply via email to