Exportation/importation des paramètres

Rien de très grave, mais j’ai rencontré un petit problème avec site_settings:import qui m’a vraiment posé problème.
Il existe une solution de contournement simple mais peu élégante (exécuter la tâche rake deux fois), mais comme cela est généralement lancé de manière non supervisée, je n’ai pas remarqué l’erreur au début.

Fichier de paramètres exporté (partiel) (site_settings:export)

sso_overrides_email: 'true'
email_editable: 'false'

Importation de ce fichier dans un autre forum :

ERREUR : sso_overrides_email : Vous devez désactiver « email editable » avant d'activer ce paramètre.
Changement de email_editable DE : t VERS : false

La deuxième exécution prend bien en compte le paramètre :

Changement de sso_overrides_email DE : f VERS : true

Solutions possibles :

  • Accepter la situation et exécuter simplement la tâche rake d’importation deux fois
  • Exporter les paramètres dans l’ordre de updated_at
  • Faire en sorte que la tâche rake exécute l’importation deux fois
  • Désactiver ce type de vérification lors de l’importation depuis un fichier
3 « J'aime »

Quelle solution pensez-vous être la plus logique ?

Je ne suis pas sûr.

cela fonctionnera, ne demandera pas trop d’efforts et sera le plus logique, mais échouera toujours si des restrictions supplémentaires sont mises en place après la création des paramètres.

cela fonctionnera mais ne semblera pas logique aux personnes concernées,

c’est vraiment laid, mais cela fonctionne

cela pourrait introduire toutes sortes de problèmes désagréables et demander beaucoup d’efforts.

2 « J'aime »

Je ne pense pas que cela fonctionnera.

Pour moi, la solution la plus simple consiste à l’exécuter deux fois et, si une erreur se produit lors de la deuxième tentative, d’abandonner.

Cela dit, ce n’est pas aussi simple que de «l’exécuter deux fois» :

  1. Vous l’exécutez la première fois en capturant les erreurs sur n’importe quel paramètre spécifique que vous définissez.
  2. La deuxième fois, vous l’exécutez simplement par lot et vous abandonnez si quoi que ce soit échoue.

Si nous gérons déjà ce désordre, nous devons prendre en charge les cas où plusieurs dépendances sont en jeu.

Il y a aussi la question d’un retour en arrière propre, donc ce n’est absolument pas une tâche triviale.

2 « J'aime »