Baisse des contraintes de CHECK ordinales congelées Hibernate gelée à la création

FixInitializerService
Shipped
25 août 2026 à 18:14 UTC
Author
Kamo
Commit
8ed40d7

Hibernate écrit CHECK (col 0 ET col et N) sur un « énuméré (ORDINAL) colonne à CREATE TABLE, où N est l'ordinal le plus élevé qui existait jour, et ddl-auto: la mise à jour ne le revoit jamais. Le jour où quelqu'un ajoute un valeur enum, chaque insertion portant le nouvel ordinal est rejetée - et parce que la déclaration défaillante se trouve généralement à l'intérieur d'une méthode transactionnelle, Le rollback supprime les preuves et la fonctionnalité ne fait tout simplement rien. Deux d'entre eux étaient déjà pleins et déjà en train de casser des choses, trouvés alors que vérifier si le DSE pourrait réutiliser le gestionnaire de document plutôt que de construire un deuxième: - Les cinq contrôles ImageAssocType permettent 0-13. L'enum atteint l'ordinal 15 Il y a quelque temps. PICTURE-FRAME et SYSTEME-BUG-SCREENSHOT ne peuvent donc pas avoir un dossier, un type doc, un ordre d'empilement, un assoc config ou un liant Aujourd'hui. Rien ne le rapporte, la querelle n'apparaît jamais. - img-dats-server-mime-check permet 0-35 et ImageMimeType avait exactement 36 valeurs - un nouveau type de mime loin de rejeter chaque téléchargement de ce type. Une deuxième contrainte, plus large, (check-server-mime, 0-99) était déjà assise sur le une même colonne, donc la catégorie étroite était pure responsabilité: le contrôle plus strict toujours en gagnant. img-dats-ère-req-typeid-check était également très plein à neuf valeurs contre 0-8. Abandonné plutôt qu'élargir, selon la règle permanente. Élargir exactement les achats une valeur de plus enum puis reproduit le même échec, avec une migration Entre cela, tout le monde le croira. La portée ne fait rien faire d'avoir soit: l'application cartographie ces colonnes à travers l'enum dans les deux sens, de sorte qu'une valeur hors de portée ne peut pas provenir de l'application, Et un écrit à l'extérieur c'est un bug que le chèque convertit en un silencieux l'échec au lieu d'une erreur que quelqu'un voit.

All changes

Comme ce que tu vois expédier ?

Chacune de ces mises à jour atterrit automatiquement dans votre espace de travail. Commencez gratuitement et regardez-le grandir semaine après semaine.

Commencez gratuitement pour toujoursPrix de visualisation