No me gustan las soluciones de "sitio web de clonación " que implican descartar una base de datos e importar este volcado en otro entorno. Esto no parece una forma del mundo real de implementar varias instancias del mismo sitio web (puesta en escena / prod / dev / etc).
Con D7 usualmente usamos perfiles personalizados y drush para instalar sitios web desde estos perfiles (y tal vez usando características para sincronizaciones posteriores del sitio). Esto nos proporcionó nuevas instalaciones, sin contenido de prueba, pero compartiendo configuraciones importantes. La sincronización de contenido común se realizaría con migrate, por ejemplo.
Intenté administrar varias instancias D8 que compartían los mismos perfiles de instalación. Donde el objetivo final sería compartir y sincronizar las configuraciones del sitio. Y cada instalación tiene un UUID de sitio diferente. No tengo éxito en aplicar la system.site uuid
variable de configuración en el momento de la instalación (por supuesto, puedo alterar el valor más tarde, pero me parece que es demasiado tarde, y todos los objetos ya están creados con diferentes UUID, lo que hace que la primera sincronización sea una pesadilla , donde deben eliminarse algunos contenidos predeterminados o el idioma predeterminado bloquea la sincronización porque no se puede eliminar, etc.).
Para aplicar este UUID, intenté usar un archivo settings.php generado con un $config['system.site']['uuid']
valor dentro, gran error (la configuración se ignoró por completo, incluso después de la instalación del sitio).
También he mirado perfil del instalador de configuración , que no entiendo completamente, especialmente la forma de mezclar esta solución con otro perfil de instalación.
Entonces, la pregunta es, ¿cuál es la mejor manera de implementar sitios nuevos desde un perfil de instalación:
- sin "clonar sitios web" y manipular los volcados de SQL en la creación del sitio (como en lo que se refiere a los sitios clonados) ).
- con una limpia instalación nueva (sin basura desarrolladores de contenido), utilizando la configuración exportada y el código sólo se
- que puede gestionar tanto la configuración predeterminada de la instalación como las sincronizaciones posteriores
fuente
Otra opción:
fuente
Según la sugerencia de @Ivan Jaros, puede establecer ciertas opciones de configuración al instalar un perfil. Obviamente, esto solo funciona en la instalación y no una vez que un sitio ya está instalado.
En el archivo .install de su perfil, puede agregar la configuración predeterminada en
hook_install()
:He intentado esto localmente y funciona. Pude extraer la configuración de otro sitio en un sitio local recién instalado usando el código anterior (con el conjunto de UUID adecuado) sin usar
drush cset
para cambiar el UUID del sitio.Presumiblemente, podría configurar su UUID para que se tome de un archivo en su entorno en algún lugar, o una variable de entorno, o servicio, y así todos serían iguales en cualquier sitio con ese perfil instalado.
Esperaba hacer algo similar,
settings.php
pero laConfigFactory
clase no está disponible en ese momento y, como señala en su pregunta, configurarla a través$config
desettings.php
no tiene ningún efecto.fuente