- Expédié
- 11 août 2026 à 18:10 UTC
- Auteur
- Kamo
- Commite
- b458e58
Trois coureurs: BillingGroupRosterMigration crée des membres de facturation de la facturation des membres de la facturation signifie payer, avant qu'il n'ait acheté quoi que ce soit. org-id est dénormalisé sur lui de sorte que la base de données peut faire respecter "un membre est sur la plupart un groupe de facturation actif par groupe de facturation l'organisation" en tant qu'unique partielle. Deux groupes payant pour une personne sont deux des charges pour un siège, et rien d'autre dans le schéma ne l'attraperait: Les conditions uniques du sous-abonnement sont par souscription et AccountLicense n'en a pas. - Ajout de facturation-groupe-uid à compte-abscriptions et remplace la trois colonnes unique par deux uniques partiels. l'agrandir pour quatre colonnes ne fonctionneraient pas - les NULL sont distincts à l'intérieur d'un index unique ici, donc toute ligne autre que le groupe cesserait d'être contrainte. BillingPayGroupColumnsMigration ajoute l'identifiant du marché, la limite des sièges et du statut, ainsi que des marques Groupes existants LEGACY. Ceux-ci ont été facturés à n'importe quel compte uid la demande l'organisme transporté, et la console a envoyé celle de l'organisation, donc leur compte-uid est presque certainement mal. Il n'y a pas de moyen sûr de deviner quelle carte était prévue, et deviner de fausses factures la mauvaise personne, donc elles sont refusées au point d'accusation au lieu de réparer. La première course a montré pourquoi le retry est important: les deux indices de remplacement ont échoué avec 40001 ne pouvait pas sérialiser l'accès, le coureur connecté "skipped" et transporté, et le DROP de l'ancienne contrainte a ensuite succédé - en laissant un compte-sabons sans caractère unique, ce qui est strictement pire que la collision que celle-ci. Les déclarations DDL réessayent maintenant sur la défaillance de la sérialisation, et la goutte est sautée entièrement à moins que les deux remplacements ne soient confirmés en place.