Exportación/importación de configuración

Nada realmente grande, pero tropecé con un pequeño problema al usar site_settings:import y me afectó fuertemente.
Existe una solución fácil pero fea (ejecutar la tarea rake dos veces), pero esto es algo que normalmente se ejecuta sin supervisión, así que al principio no vi el error.

Archivo de configuración exportado (parcial) (site_settings:export)

sso_overrides_email: 'true'
email_editable: 'false'

Importar ese archivo en otro foro:

ERROR: sso_overrides_email: Debes desactivar 'email editable' antes de habilitar esta configuración.
Cambiado email_editable DE: t A: false

Por supuesto, la segunda ejecución recoge la configuración:

Cambiado sso_overrides_email DE: f A: true

Posibles soluciones:

  • Aceptar el problema y simplemente ejecutar la tarea de importación rake dos veces
  • Exportar la configuración en orden de updated_at
  • Hacer que la tarea rake ejecute la importación dos veces
  • Desactivar este tipo de comprobaciones al importar desde un archivo
3 Me gusta

¿Qué solución crees que tiene más sentido?

No estoy seguro.

funcionará, no requiere mucho esfuerzo y es lo más lógico, pero seguirá fallando si se implementan restricciones adicionales después de realizar los ajustes.

funcionará, pero no tendrá sentido para las personas,

es realmente feo, pero funciona.

podría introducir todo tipo de problemas molestos y podría requerir mucho esfuerzo.

2 Me gusta

No creo que esto funcione.

Para mí, lo más sencillo es ejecutarlo dos veces y, si hay un error en la segunda pasada, abortar.

Dicho esto, no es tan trivial como “ejecutarlo dos veces”:

  1. Lo ejecutas la primera vez, capturando errores en cualquier configuración específica que establezcas.
  2. La segunda vez, simplemente lo ejecutas en lote y abortas si algo falla.

Si ya estamos gestionando este desorden, debemos abordar los casos en los que hay múltiples dependencias involucradas.

También está la cuestión de una reversión limpia, por lo que esto no es una tarea trivial en absoluto.

2 Me gusta