Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migration pour créer les user profiles manquants des participations de RDV #5024

Closed
wants to merge 2 commits into from

Conversation

adipasquale
Copy link
Contributor

@adipasquale adipasquale commented Jan 27, 2025

Contexte

On s’intéresse aux cas d’usagers participant à un RDV dans une orga A mais n’ayant pas de user profile dans cette orga.

On vient de déployer une mitigation (#5021 ) qui devrait combler une partie des sources de ces situations.

On voudrait maintenant nettoyer l’existant.

Solution

Je propose dans cette PR une migration up only qui effectue le nettoyage en parcourant les Participations qui n’ont pas de user profiles correspondant.
On exclut les user qui sont soft deleted pour ne pas les ré-associer à tort aux orgas existantes

Tests

En local j’ai testé sur un dump semi anonymisé de la prod de RDV SP. Ça créé 177 user profiles sans encombre. Le re-lancement en créé 0, ce qui est attendu.

Copy link
Contributor

@francois-ferrandis francois-ferrandis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Le code m'a l'air bon, jolies jointures ! 🤩

Sur la forme, je crois qu'on préfère garder les migrations plutôt pour modifier le schéma. Pour ce genre de script, on affiche le code dans la PR mais on ne l'ajoute pas forcément à git.

Ceci étant dit je n'ai pas d'objection à merger ça, ni à juste l'exécuter et fermer la PR. On pourra discuter en point tech de si on a envie d'adopter https://github.com/theSteveMitchell/after_party ou non !

@adipasquale adipasquale marked this pull request as ready for review January 27, 2025 16:50
@adipasquale
Copy link
Contributor Author

merci @francois-ferrandis !

Merci pour les infos je ne connaissais pas cette habitude de l’équipe.

J’étais habitué à commiter aussi les scripts de migration de données sans changement de schémas. J’y vois quelques avantages comme être sûr de les lancer sur tous les environnements : demo / prod 1 / prod 2 / dev ou passer par le process de review classique. mais il y a surement des inconvénients que je n’ai pas en tête, au plaisir d’en discuter un de ces jours !

Et je ne connaissais pas la gem merci ! je ne vois pas bien l’intérêt dans le cas d’une tâche ponctuelle versus une migration

@francois-ferrandis
Copy link
Contributor

Et je ne connaissais pas la gem merci ! je ne vois pas bien l’intérêt dans le cas d’une tâche ponctuelle versus une migration

C'est vrai que les intérêts sont assez minces, il y a un bon résumé ici : https://github.com/theSteveMitchell/after_party?tab=readme-ov-file#sowho-cares

Mais oui, une migration classique fera bien l'affaire ici. 🚀

@adipasquale
Copy link
Contributor Author

après réflexion, on ferme cette PR qui s’apprêtait à modifier les données de manière erronée.

C’est en effet un cas « normal » d’avoir des participations qui ne correspondent pas à des user profiles. Par exemple :

  • dans un territoire avec deux orgas A et B
  • créer un usager dans l’orga A
  • l’importer dans l’orga B
  • créer un RDV pour cet usager (dans le passé) dans l’orga B
  • supprimer l’usager de l’orga B

=> l’usager existe toujours, n’est pas soft deleted, a une participation dans B mais pas de user profile.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: ✅ Done
Development

Successfully merging this pull request may close these issues.

2 participants