[development] Active databases and development/test/production environment (was: ASP integration with Drupal?)

Earnie Boyd earnie at users.sourceforge.net
Fri Aug 17 13:05:05 UTC 2007



Quoting jp.stacey at torchbox.com:

>
> In this situation, although each *site* has a settings.php, each  
> developer is checking out the same settings.php from the repository  
> per site. They don't want to be editing settings.php in case it gets  
> folded back into the repository, deployed to live and breaks it. This 
>  means that, if two developers are working on the same development  
> server rather than on their desktops, then even if they work on  
> different physical files on the filesystem, subversion still gives  
> them identical settings.php, and without extra effort they will end 
> up  sharing a database.
>

Yes.  The install process now makes the settings.php file read only.  
This is the reason.  Make sure this files mod settings is 444 for extra 
good measure that svn will not overwrite it on update.

> Having some code that would switch database based on HTTP Host is  
> ideal, really, as that's the main marker for Drupal to tell it which  
> site it has to pretend to be ;) This switching seems perfectly  
> natural, coming from an environment where local/live config switching 
>  is expected, and devel/test/prod config switching is generally  
> desirable.
>

I hope and have assumed you're aware of the multi-sites features for 
version 5?

sites/all/modules
sites/all/themes

URL http://www.example.com/dev/user1
sites/www.example.com.dev.user1/settings.php
sites/www.example.com.dev.user1/modules
sites/www.example.com.dev.user1/themes

URL http://www.example.com/dev/user2
sites/www.example.com.dev.user2/settings.php
sites/www.example.com.dev.user2/modules
sites/www.example.com.dev.user2/themes

URL http://www.example.com/test
sites/www.example.com.test/settings.php
sites/www.example.com.test/modules
sites/www.example.com.test/themes

URL http://www.example.com
sites/www.example.com/settings.php
sites/www.example.com/modules
sites/www.example.com/themes


It is recommended that modules and themes that affect all sites be 
placed in sites/all/modules and sites/all/themes.  Then dev user 1 can 
place the modules she is working on in her local site while dev user 2 
can place the themes he is working on in his local site.  When test is 
ready, the modules and themes are placed in the test local site.  Now 
to deploy I will bet you can guess what is next.

Earnie


More information about the development mailing list