Non utilizzare lo stesso file di impostazioni che stai suggerendo con il tuo pseudocodice. Utilizzare invece tre diversi file di impostazioni in tre diverse cartelle, ciascuna cartella corrispondente al nome di dominio di ciascuna istanza.
Come minimo, generalmente ogni ambiente utilizzerà un host di database separato. Altre impostazioni che possono differire da un ambiente all'altro possono includere l'host Apache Solr, le impostazioni memcached, la cartella temporanea e la cartella dei file, per citarne alcuni. Puoi posizionarli tutti lì. Quando si esegue la migrazione del database da PROD a TEST su DEV, verranno automaticamente rilevate le impostazioni specificate.
Immagina che il mio sito si chiami myfoobarsite.com. Ecco come apparirebbe la mia struttura delle impostazioni:
/htdocs
../sites
..../default
....../default.settings.php
..../dev.myfoobarsite.com (DEV)
....../settings.php
..../qa.myfoobarsite.com (TEST)
....../settings.php
..../myfoobarsite.com (PROD)
....../settings.php
In genere ho anche due istanze locali del sito, una con l'istantanea del database più recente di PROD e un'altra in cui mantengo tutte le mie modifiche. Questo è molto utile quando si lavora con le funzionalità e consente di testare le funzionalità sul database di produzione (localmente) prima di eseguire il commit. Ecco la struttura modificata:
/htdocs
../sites
..../default
..../dev.myfoobarsite.com (DEV)
..../qa.myfoobarsite.com (TEST)
..../myfoobarsite.com (PROD)
..../mfbs.local (LOCAL ONE)
....../settings.php
..../mfbs2.local (LOCAL TWO)
....../settings.php
Per quanto riguarda le tue istanze locali, ricordati di inserire le voci appropriate nel /etc/hosts
file e di modificare le impostazioni dell'host Apache.
Per ogni evenienza, ho anche inserito uno snippet da settings.php come guida:
<?php
$databases['default']['default'] = array(
'database' => 'myfoobarsite',
'username' => 'foo',
'password' => 'bar',
'host' => '127.0.0.1',
'port' => '3306',
'driver' => 'mysql',
'prefix' => '',
);
/**
* Apache Solr settings.
* Use the acquia_identifier/acquia_key when hosting w/ Acquia.
* Specify only the apachesolr_path key for your local instance
* or instances that do not use Acquia.
*/
//$conf["acquia_identifier"] = "ABCD-12345";
//$conf["acquia_key"] = "1234f05ab12345dc1234a1234bbc1c12";
$conf["apachesolr_path"] = "http://localhost:8983/solr";
/**
* Filesystem settings (MAC OS X, LOCAL)
*/
$conf["file_public_path"] = "sites/default/files";
$conf["file_temporary_path"] = "/Users/amateurbarista/tmp";
$conf["file_private_path"] = "/Users/amateurbarista/Sites/tfk/private";
Infine, se stai ospitando con Acquia, dovrai andare su http://myfoobarsite.com/admin/config/system/acquia-agent
e fare clic su "cancella chiavi" ogni volta che esegui la migrazione del database. Ciò farà sì che Drupal rilasci le chiavi fornite dal database importato e raccolga quelle specificate nel file delle impostazioni.