Closed kemenaran closed 3 years ago
Pour ceux que ça intéresse, une branche avec quelques helpers pour faciliter le dédoublonnage safe de la base (avec même des bouts de Gitlab dedans) : https://github.com/betagouv/demarches-simplifiees.fr/tree/add-unique-constraints-1
La config Rails 6 de Rubocop nous prévient lorsqu'on a des modèles qui ont une contrainte d'unicité au niveau Rails, mais que cette contrainte n'est pas présente dans la base de donnée. C'est effectivement une bonne idée, parce que le validateur Rails ne fonctionne qu'au niveau d'une instance web donnée : il peut y avoir des race-conditions sur l'ajout de colonnes uniques, qui doivent être résolues par la base de donnée.
Lors du passage à Rails 6, on a désactivé ce linter spécifique, le temps d'essuyer les plâtres.
Mais maintenant, il est temps de ré-activer ce linter, et de rajouter les contraintes qui manquent.
Une partie du travail a été commencée dans #5535. Mais évidemment on a de la bad data en prod, il faut donc avant rectifier les données concernées.