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

[TECH] Remplit la colonne reconciledAt pour les anciennes certifications (PIX-14403). #10190

Merged

Conversation

alexandrecoin
Copy link
Contributor

@alexandrecoin alexandrecoin commented Sep 26, 2024

🦄 Problème

Maintenant que l’on enregistre et utilise la date de reconciliation, il y a un rattrapage à faire sur les données précédentes.

🤖 Proposition

Ajout d'une migration.

Si le userId est rempli dans certification-candidates, alors cette migration remplit la colonne reconciledAt de certification-candidates qui ont créé un certification-course (certification-courses.createdAt is not null)

🌈 Remarques

Cette migration est faite via un knex.raw() parce qu'on a perdu pas mal de temps à se battre sur les bindings knex.

Warning

Une fonction down a été ajoutée car les seeds étant joués après les migrations, il nous faut pouvoir rollback cette migration et la rejouer afin d'éxecuter la requête sur les données inscrites à posteriori des migrations initiales.

💯 Pour tester

Lancer la migration sur les seeds et vérifier via la requête suivante que :

  • Seuls les certification-candidates ayant un userId et un sessionId non nuls aient une date reconciledAt non nulle.
  • La date reconciledAt correspond au createdAt du certification-course du candidat
select 
cc.id,
cc."userId",
cc."sessionId",
cc."reconciledAt",
cco."createdAt"
from "certification-candidates" cc
left join "certification-courses" cco on cc."userId" = cco."userId"
and cco."sessionId" = cc."sessionId";

Le résultat devrait être équivalent à :

Capture d’écran 2024-09-25 à 15 16 50

@pix-bot-github
Copy link

Une fois les applications déployées, elles seront accessibles via les liens suivants :

Les variables d'environnement seront accessibles via les liens suivants :

@alexandrecoin
Copy link
Contributor Author

Capture d’écran 2024-09-26 à 10 19 01

Copy link
Contributor

@Steph0 Steph0 left a comment

Choose a reason for hiding this comment

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

Sur mon PC, j'ai mis environ 9 million de candidats. Et une 30aine de certification-course eparpilles dans les 9 million (pour que PG galere bien a trouver les lignes eparpilles), et ca a fonctionne sans soucis !

@alexandrecoin alexandrecoin force-pushed the pix-14403-add-reconciliation-date-to-former-candidates branch from 4265906 to e87c1f7 Compare September 26, 2024 08:38
@alexandrecoin alexandrecoin force-pushed the pix-14403-add-reconciliation-date-to-former-candidates branch from e87c1f7 to e7ead71 Compare September 26, 2024 09:14
@alexandrecoin alexandrecoin force-pushed the pix-14403-add-reconciliation-date-to-former-candidates branch from e7ead71 to 87e81ba Compare September 26, 2024 09:16
@HEYGUL HEYGUL added Func Review OK PO validated functionally the PR and removed 👀 Func Review Needed labels Sep 26, 2024
@alexandrecoin alexandrecoin enabled auto-merge (squash) September 26, 2024 09:16
@alexandrecoin alexandrecoin merged commit 6397a88 into dev Sep 26, 2024
12 of 13 checks passed
@alexandrecoin alexandrecoin deleted the pix-14403-add-reconciliation-date-to-former-candidates branch September 26, 2024 09:21
@Steph0
Copy link
Contributor

Steph0 commented Oct 25, 2024

⚠️ Aux lecteurs bien apres coup, attention ne pas re-utiliser cette migration car elle a un soucis sur la pagination (le returning ne renvoie pas de rowCount).

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

Successfully merging this pull request may close these issues.

7 participants