Não gosto das soluções de "site de clonagem ", que implicam o descarte de um banco de dados e a importação desse despejo em outro ambiente. Isso não parece uma maneira real do mundo de implantar várias instâncias do mesmo site (teste / prod / dev / etc).
Com o D7, geralmente usamos perfis personalizados e drush para instalar sites a partir desses perfis (e talvez usando recursos para sincronizações posteriores do site). Isso nos forneceu instalações novas, sem conteúdo de teste, mas compartilhando configurações importantes. A sincronização de conteúdo comum seria feita com a migração, por exemplo.
Tentei gerenciar várias instâncias do D8 compartilhando os mesmos perfis de instalação. Onde o objetivo final seria compartilhar e sincronizar as configurações do site. E toda instalação possui um site UUID diferente. Não tenho sucesso em impor a system.site uuid
variável de configuração no momento da instalação (é claro que posso alterar o valor posteriormente, mas parece-me que isso é tarde demais e todos os objetos já foram criados com UUIDs diferentes, o que torna a primeira sincronização um pesadelo. , onde algum conteúdo padrão deve ser excluído ou o idioma padrão interrompe a sincronização porque ela não pode ser removida etc.).
Para impor esse UUID, tentei usar um arquivo settings.php gerado com um $config['system.site']['uuid']
valor interno, grande falha (a configuração foi completamente ignorada, mesmo após a instalação do site).
Também observei o perfil do instalador de configuração , que não entendo completamente, especialmente a maneira de misturar essa solução com outro perfil de instalação.
Portanto, a questão é: qual é a melhor maneira de implantar sites novos a partir de um perfil de instalação:
- sem "clonar sites" e manipular dumps SQL na criação do site (como na pergunta sobre sites clonados ).
- com um pano limpo nova instalação (sem desenvolvedores de lixo conteúdo), usando a configuração eo código exportado única
- que pode gerenciar os padrões de configuração da instalação e as sincronizações posteriores
fonte
Outra opção:
fonte
Com base na dica de @Ivan Jaros, você pode definir certas opções de configuração ao instalar um perfil. Obviamente, isso funciona apenas na instalação e não quando o site já estiver instalado.
No arquivo .install do seu perfil, você pode adicionar as configurações padrão em
hook_install()
:Eu tentei isso localmente e funciona. Consegui extrair a configuração de outro site para um site local recém-instalado usando o código acima (com o conjunto UUID adequado) sem usar
drush cset
para alterar o UUID do site.Presumivelmente, você pode definir seu UUID para ser retirado de um arquivo em seu ambiente em algum lugar, ou de uma variável de ambiente ou serviço, e, portanto, todos seriam iguais em qualquer site com esse perfil instalado.
Eu esperava fazer algo semelhante,
settings.php
mas aConfigFactory
classe não está disponível nesse momento e, como você aponta na sua pergunta, defini-la via$config
insettings.php
não tem efeito.fonte