Managed ad

Växla mellan miljöer i drupal med config split

Av Pontus, 28 januari, 2023

För att ändra inställningar i en annan konfiguraionts split så måste vi först växäla över till den men settings.php Environment Gotcha. Vi kan inte bara klicka i GUI och ändra.

Anledningen till att du inte kan aktivera live-konfigurationsinställningarna i användargränssnittet är att settings.php filen åsidosätter användargränssnittets klick. Så du måste gå till din fil och byt miljövariabeln.

Så här är vad jag gör.

I settings.local.php sätter jag mijövariabeln:

$env = 'dev';

I settings.php har sedan 

$env = 'prod';
if (file_exists($app_root . '/' . $site_path . '/settings.local.php')) {
	include $app_root . '/' . $site_path . '/settings.local.php';
}
switch ($env) {
	case 'prod':
		$config['config_split.config_split.staging']['status'] = FALSE;
		$config['config_split.config_split.dev']['status'] = FALSE;
		$config['config_split.config_split.prod']['status'] = TRUE;
	break;
	case 'dev':
	case 'test':
	default:
		$config['config_split.config_split.staging']['status'] = FALSE;
		$config['config_split.config_split.dev']['status'] = TRUE;
		$config['config_split.config_split.prod']['status'] = FALSE;
	break;
	case 'staging':
		$config['config_split.config_split.staging']['status'] = TRUE;
		$config['config_split.config_split.dev']['status'] = FALSE;
		$config['config_split.config_split.prod']['status'] = FALSE;
	break;
}

Så först sätter jag en standard miljö, prod, sen läser jag in settings.local.php i vilken jag sätter vad det ska vara. På det här sättet så blir det prod om jag glömmer sätta miljövariabeln. 

När jag sen vill växla är det här flöder jag följer.

Byt miljövariabeln i settings.local.php

joe settings.local.php

Rensa cachen:

drush cr

 Ladda all din konfiguration från den nya miljön till din lokala

drush cim

Aktivera moduler ändra det du ska ändra. Lägg till det som ska vara i den aktuella config spliten. Därefter exporterar vi.

drush cex

Ändra tillbaka miljövariabeln, rensa cachen och importera gamla konfigen igen.

drush cr
drush cim

Sen kan vi importera inställningarna från prod miljön om vi till exempelt har aktiverat nya moduler som vi också behöver i dev men med andra inställningar.

drush csim prod

Därefter kan vi exportera inställningar till den miljön och de finns sparade där.

drush cex

 

 

Kategorier

Managed ad