Mission : une inscription qui plante en production mais pas en local
Diagnostiquer un IntegrityError provoqué par un association_proxy sans creator, puis corriger la construction de l'objet intermédiaire et cerner les limites du proxy pour les requêtes filtrées.
Contexte
L'application de gestion scolaire utilise cours: Mapped[list[Cours]] = association_proxy("inscriptions", "cours") sur Etudiant, sans creator= personnalisé. La colonne note d'Inscription est déclarée NOT NULL en base PostgreSQL de production. En local, les tests tournent sur SQLite avec une base recréée sans jamais avoir migré cette contrainte, donc tout semble fonctionner. En production, etudiant.cours.append(nouveau_cours) fait planter le déploiement avec un IntegrityError sur note. Un autre développeur, en parallèle, essaie d'écrire select(Etudiant).where(Etudiant.cours == cours_cible) pour retrouver les étudiants inscrits à un cours donné, sans succès non plus.