¿En qué orden se deben ejecutar las importaciones de configuración y las actualizaciones del módulo?

10

Dado que la versión de esquema de los módulos se almacena en el almacenamiento de valores clave, es única para cada sitio y no se sincroniza a través de la administración de la configuración. Eso tiene sentido, ya que las actualizaciones pueden necesitar hacer ajustes que no están encapsulados en la configuración (como las actualizaciones de la base de datos), pero hay otros cambios que también pueden incluirse en la configuración (por ejemplo, agregar un nuevo valor de configuración).

  • ¿Existe algún riesgo al ejecutar la importación de configuración y las actualizaciones de la base de datos en cualquier orden?
  • ¿Cuál es el orden preferido para ejecutar esas operaciones?
  • ¿Es necesario que los ganchos de actualización realicen ajustes especiales para los elementos de configuración que ya se hayan importado?
  • ¿Hay otras operaciones que puedan ser necesarias para actualizar completamente el entorno de producción?
hueco
fuente
Problema relacionado: drupal.org/node/2901418 :
milkovsky

Respuestas:

12

Las actualizaciones deben ejecutarse antes de importar la configuración

Un problema pendiente contra el núcleo garantizará que las versiones de código y esquema coincidan antes de permitir que se importe la configuración .


Problemas con la importación de configuración antes de las actualizaciones

  • Un enlace de actualización que se basa en un valor de configuración podría terminar en un resultado diferente que si se ejecutara en el valor previo a la importación.

  • Una actualización podría fallar potencialmente si intentara crear entidades de configuración que ya existen.

Preocupaciones por la importación de configuración después de las actualizaciones

  • Si se ejecuta primero una actualización que introduce una nueva entidad de configuración, creará un nuevo elemento de configuración que tendrá un UUID diferente al que está en la configuración. Sin embargo, una vez que se importa la configuración, la entidad debe reemplazarse con la versión de configuración.

    Podría haber un problema potencial aquí si reemplazar la entidad afectaría el contenido asociado. Por ejemplo, si una actualización migra contenido de un campo a otro, al importar la configuración, el campo se reemplazaría por completo y el contenido se perdería potencialmente. En este caso, es posible que sea necesario ajustar el proceso de implementación para ejecutar las actualizaciones en el entorno de destino y exportar la configuración resultante.

hueco
fuente
Anteriormente había dejado una respuesta de que el orden no importa (solo que el orden de las actualizaciones y la configuración debe ser el mismo que se implementó). Estoy pensando que estaba equivocado, porque siempre debes exportar la configuración después de la actualización. Entonces, en local, actualice y luego exporte, en despliegue, actualice y luego importe.
ognockocaten
Como se analiza en el problema vinculado, hay un caso en el que las actualizaciones de nuestra entidad requieren que se importe un nuevo campo o, de lo contrario, el enlace post_update fallará. En este caso, necesitamos que se realice la importación de la configuración antes de que se actualice la base de datos. Parece que la versión
atwixtor