Usando o novo gerenciador de configuração do Drupal 8, como posso impedir que ele instale o módulo Devel em determinados ambientes? Tanto quanto sei, instalá-lo no meu local significa que na próxima vez que exportar a configuração e movê-la para meus outros ambientes (dev, test, prod), ela será automaticamente ativada.
8
configuration-management
Cambraca
fonte
fonte
drush
aceitável? Eu descobri no outro diadrush config-export --skip-modules=devel
. Pode haver algo semelhante sem usar drush, mas eu não sei.Respostas:
Método: Drush
O drush pode ignorar os estados de extensões ativados ao sincronizar a configuração.
drush cex --skip-modules=devel
drush cim --skip-modules=devel
Com as ferramentas Drush CMI, você pode operar com uma lista de configurações a serem ignoradas.
drush cexy --ignore-list=/path/to/config-ignore.yml
drush cimy --delete-list=/path/to/config-ignore.yml
Método: Módulos
Você pode usar o módulo Split de configuração que permite:
Módulo de modo somente leitura de configuração
$settings['config_readonly'] = TRUE;
E outro módulo é a configuração do ambiente que permite substituir a configuração por ambiente.
fonte
composer require --dev drupal/devel
. O bônus adicional é que a instalação do compositor é mais rápida, tornando a produção do produto mais rápida.Atualização : o recurso descrito abaixo foi removido recentemente https://www.drupal.org/project/config_split/issues/2926505
Se você estiver usando drush em seu processo de implantação, poderá fazer o seguinte:
Crie um
drushrc.php
arquivo no mesmo diretório que o seusettings.php
(por exemplodocroot/sites/default
:) e coloque o seguinte:Isso significa que você pode manipular os comandos
drush cex
/drush cim
para ignorar os módulos durante seu processo.Você pode ler mais sobre Como usar o filtro do módulo de configuração no Drush 8 .
fonte
drush cex --skip-modules
foi removido em favor do config_split, conforme explicado nesta edição, portanto, as soluções aqui baseadas em drush não funcionaram para mim.Aqui está a solução baseada na solução Duncanmoo usando o módulo config_exclude
1. Instale config_exclude usando o Composer require --dev e configure-o
permita que o settings.php seja usado no seu ambiente de desenvolvimento local
Adicionar configurações config_exclude no arquivo local
aqui estão algumas configurações de amostra
NOTA1: config_filter é uma dependência config_exclude, portanto, se você não precisar da produção, poderá excluí-lo acima
NOTA 2: O
settings.local.php
não é um requisito. Depende se é controlado pelo seu VCS ou não.2. O compositor exige --dev
Ao habilitar um módulo puramente para desenvolvimento, use o sinalizador --dev:
Isso resulta no acréscimo dessas dependências no arquivo composer.json em require-dev:
Portanto, se você instalar o site SEM seus módulos de desenvolvimento, use:
NOTA: Nos ambientes de preparação e produção, você sempre deve fazer --no-dev
3. use drush cex como você normalmente usa
não exportará nenhuma das configurações de módulos excluídos
NOTA: Tenho notado core.extension configurações parecem ter sido modificado após a execução do comando acima, mas o .yml correspondente nunca é escrita no disco rígido (mesmo após a confirmação
will be deleted and replaced with the active config
) então não há nada a ser comprometidos, eu acho que depende do internos do módulo config_excludefonte
Há uma questão interessante para o Drupal 8.3.x: permita que os módulos de desenvolvimento optem por não participar da configuração de exportação . O consenso geral é que atualmente a Divisão de Configuração é a melhor solução.
Comentado por swentel :
Comentado por geerlingguy :
fonte
A divisão de configuração pode ser uma solução viável para alguns.
https://www.drupal.org/project/config_split
fonte
Há uma maneira elegante de fazer isso, em que você acaba com os módulos de desenvolvimento comprometidos no compositor por conveniência e a configuração desses módulos não é adicionada à sua exportação de configuração (existem duas partes):
1. O compositor exige --dev Ao habilitar um módulo que é apenas para desenvolvimento, use o sinalizador --dev:
Isso resulta no acréscimo dessas dependências no arquivo composer.json em require-dev:
Portanto, se você instalar o site SEM seus módulos de desenvolvimento, dirá:
NB: Nos seus ambientes de preparação e produção, você sempre deve fazer --no-dev
2. Use o módulo config_split
O módulo de divisão de configuração permite criar agrupamentos de exportação de configuração que podem ser ativados ou desativados em um ambiente.
Na verdade, tenho 3 divisões:
fonte
Fiz um pequeno roteiro para fazer tudo de uma só vez.
fonte
Você também pode ver o módulo Config Ignore .
fonte
Você pode usar um módulo de substituição de implantação para isso. Leia o link a seguir para obter uma descrição detalhada:
http://dcycleproject.org/blog/46/continuous-deployment-drupal-style
No entanto , a melhor maneira de fazer isso seria desativar o módulo no local e exportar a configuração.
O Drupal fornece uma maneira de substituir as definições de configuração
settings.php
, mas elas não são válidas para desativar / ativar os módulos.De
default.settings.php
:fonte