Skip to content

Conversation

@imperosol
Copy link
Member

@imperosol imperosol commented Jan 26, 2025

Ca fait si longtemps que je voulais le faire : découpler le SAS des SithFile. Les SithFile font trop de choses, et ça les rend difficile à tester, à utiliser et à en vérifier les droits. Certaines colonnes peuvent avoir une signification différente selon le contexte (file est l'image originale pour les photos, mais devrait plutôt être considéré comme une miniature, pour les albums) et beaucoup de colonnes doivent être nullable, ce qui limite pas mal la vérification des contraintes d'intégrité.

Vu l'état des données, faire cette migration est une bonne idée. En revanche, ça n'a pas été un travail facile. J'ai passé un bon paquet d'heures à nettoyer la base de données, qui était remplie de problèmes :

  • Certains albums du SAS n'existaient pas en réalité dans l'arborescence du SAS
  • Des utilisateurs étaient identifiés sur des fichiers qui n'étaient pas des photos du SAS
  • Certaines photos étaient dupliquées en db (plusieurs entrées en db pointant vers le même fichier sur le disque)
  • Beaucoup d'albums avaient des noms dupliqués

J'ai nettoyé tout ça, retiré les identifications qui n'auraient pas dû exister, dédupliqué les images, réparé l'arborescence du SAS et rajouté le semestre dans les noms d'album dupliqués ("Repas Barman" => "Repas Barman P11").

La migration se fait en quatre temps :

  1. On crée les nouvelles tables, et on y copie les albums et les photos
  2. On change les contraintes de clef étrangère de PeoplePictureRelation et PictureModerationRequest pour pointer vers la nouvelle table des photos à la place de SithFile
  3. On supprime tous les SithFile qui ont été copiés (migration à écrire)
  4. On retire la colonne is_in_sas de SithFile

Une fois la migration finie, il y a bien entendu un gros travail de debug des vues et de réparation des tests à effectuer.

@imperosol imperosol requested review from NaNoMelo and klmp200 January 26, 2025 12:07
@imperosol imperosol force-pushed the photos branch 4 times, most recently from 0cb64d5 to 88e9746 Compare January 26, 2025 15:59
@imperosol imperosol force-pushed the photos branch 4 times, most recently from 672f299 to 1a4094b Compare February 20, 2025 10:16
@imperosol imperosol mentioned this pull request Feb 24, 2025
@imperosol imperosol force-pushed the photos branch 4 times, most recently from acab227 to 219adac Compare February 26, 2025 12:43
@imperosol imperosol changed the base branch from taiste to ts-album March 4, 2025 22:39
@imperosol imperosol force-pushed the ts-album branch 2 times, most recently from 82f7f20 to 04c7df8 Compare March 12, 2025 16:37
Base automatically changed from ts-album to taiste March 12, 2025 17:09
@imperosol imperosol force-pushed the photos branch 2 times, most recently from b59be3f to 37f95fe Compare March 18, 2025 15:34
@imperosol imperosol force-pushed the photos branch 2 times, most recently from 38c93b0 to e195257 Compare May 25, 2025 10:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants