Projet

Général

Profil

Development #38579

Mapping de workflow en mode postgresql

Ajouté par Frédéric Péters il y a plus de 4 ans. Mis à jour il y a plus de 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
17 décembre 2019
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Quand il y a correspondance à faire entre des statuts, en postgresql, on devrait passer par quelques requêtes UPDATE plutôt que charger tous les formdata/evolution.


Fichiers

0001-misc-remap-statuses-in-a-transaction-38579.patch (6,07 ko) 0001-misc-remap-statuses-in-a-transaction-38579.patch Benjamin Dauvergne, 26 novembre 2020 15:35
0001-misc-remap-statuses-in-a-transaction-38579.patch (8,06 ko) 0001-misc-remap-statuses-in-a-transaction-38579.patch Benjamin Dauvergne, 26 novembre 2020 18:45
0001-misc-remap-statuses-in-a-transaction-38579.patch (8,15 ko) 0001-misc-remap-statuses-in-a-transaction-38579.patch Benjamin Dauvergne, 07 décembre 2020 09:56
0001-admin-do-not-consider-drafts-on-remapping-status-492.patch (1,2 ko) 0001-admin-do-not-consider-drafts-on-remapping-status-492.patch Benjamin Dauvergne, 08 décembre 2020 18:30
0002-misc-remap-statuses-in-a-transaction-38579.patch (8,68 ko) 0002-misc-remap-statuses-in-a-transaction-38579.patch Benjamin Dauvergne, 08 décembre 2020 18:30
0001-misc-remap-statuses-in-a-transaction-38579.patch (8,6 ko) 0001-misc-remap-statuses-in-a-transaction-38579.patch Benjamin Dauvergne, 22 mars 2021 11:44
0001-misc-remap-statuses-in-a-transaction-38579.patch (8,63 ko) 0001-misc-remap-statuses-in-a-transaction-38579.patch Benjamin Dauvergne, 29 mars 2021 11:39
0001-misc-remap-statuses-in-a-transaction-38579.patch (8,77 ko) 0001-misc-remap-statuses-in-a-transaction-38579.patch Benjamin Dauvergne, 12 avril 2021 10:10
0003-to-fixup-use-a-generator-to-silence-pylint.patch (904 octets) 0003-to-fixup-use-a-generator-to-silence-pylint.patch Benjamin Dauvergne, 24 septembre 2021 10:00
0001-misc-remap-statuses-in-a-transaction-38579.patch (8,77 ko) 0001-misc-remap-statuses-in-a-transaction-38579.patch Benjamin Dauvergne, 24 septembre 2021 10:00
0002-to-fixup-silence-pylint-by-using-conn-to-commit.patch (888 octets) 0002-to-fixup-silence-pylint-by-using-conn-to-commit.patch Benjamin Dauvergne, 24 septembre 2021 10:00
0001-misc-remap-statuses-in-a-transaction-38579.patch (10,6 ko) 0001-misc-remap-statuses-in-a-transaction-38579.patch Benjamin Dauvergne, 20 octobre 2021 10:29
0001-misc-remap-statuses-in-a-transaction-38579.patch (10,6 ko) 0001-misc-remap-statuses-in-a-transaction-38579.patch Benjamin Dauvergne, 21 octobre 2021 19:20

Demandes liées

Lié à w.c.s. - Bug #22355: le remapping des statuts sur changement d'un workflow est parfois trop longFermé07 mars 2018

Actions

Révisions associées

Révision dfbe3123 (diff)
Ajouté par Benjamin Dauvergne il y a plus de 2 ans

misc: remap statuses in a transaction (#38579)

Historique

#1

Mis à jour par Frédéric Péters il y a presque 4 ans

  • Lié à Bug #22355: le remapping des statuts sur changement d'un workflow est parfois trop long ajouté
#3

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

  • Assigné à mis à Benjamin Dauvergne
#4

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

#5

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

J'ai ajouté un cas qui n'était pas géré : si un statut déjà inconnu est présent (comment mystère, mais ça arrive visiblement, voir ticket CD06 lié) il est remappé sur old-<workflow.id>-{status}, au moins on en garde une trace plutôt que de le mettre à null comme avant.

#7

Mis à jour par Frédéric Péters il y a plus de 3 ans

Il y a moyen de réécrire l'SQL pour passer les identifiants de statut en paramètres à cur.execute(statement, parameters), plutôt que dans le statement ?

#8

Mis à jour par Frédéric Péters il y a plus de 3 ans

(aussi, je préférerais "invalid" à "old").

#10

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

  • Statut changé de Solution proposée à En cours
#11

Mis à jour par Benjamin Dauvergne il y a plus de 3 ans

  • Statut changé de En cours à Solution proposée

Échec intermittent du build.

#17

Mis à jour par Frédéric Péters il y a plus de 2 ans

(rebasé à nouveau, sans avoir regardé le précédent build jenkins qui était en erreur).

#20

Mis à jour par Benjamin Dauvergne il y a plus de 2 ans

Rebasé.

#21

Mis à jour par Frédéric Péters il y a plus de 2 ans

Après le rebase il y a un nouveau commit je ne sais pas s'il est proposé à la relecture il introduit des import jamais vu de psycopg2 qui vont demander du temps supplémentaire à la relecture, temps qu'on n'a pas nécessairement.

Cela pour dire : si c'est proposé : le proposer, avec une explication de cette partie, pour gagner du temps, sinon, le dire aussi, sortir ce commit dans une autre branche, qu'on soit clair sur ce qui est proposé ici.

#22

Mis à jour par Benjamin Dauvergne il y a plus de 2 ans

Ok, rebasé en un seul commit.

J'introduis l'utilisation de psycopg2.sql qui a lui même été introduit dans psycopg2 2.7, ça correspond à la version de psycopg2 à l'époque de stretch (oldoldstable), je pense que ça ne devrait pas poser de problème au niveau des versions.

L'expression étant un peu compliquée je trouve ça plus lisible en utilisant ce module, qu'en passant une liste de valeurs à interpoller à execute() qui est la méthode classique dans le reste du module et dans la version précédente de ce patch, je pense que ça simplifie la relectue. SQL est une chaîne (donc on a la méthode .format() classique) mais qui spécialise l'interpolation pour les différentes classes SQL (pour du code SQL "raw"), Literal (pour les valeurs) et Identifier (pour les références à des objets SQL, tables, colonnes, etc...). Ça remplace l'utilisation de mogrify() aussi (il y en a une occurence dans w.c.s.).

#23

Mis à jour par Frédéric Péters il y a plus de 2 ans

            unmmaped_status_suffix = '-invalid-%s' % str(self.workflow_id or 'default')

unmaped.

#24

Mis à jour par Frédéric Péters il y a plus de 2 ans

unmapped, même.

#26

Mis à jour par Frédéric Péters il y a plus de 2 ans

  • Statut changé de Solution proposée à Résolu (à déployer)

Et là me disant que je n'avais pas le temps de tester correctement mais qu'il ne fallait pas rater ce cycle, j'ai poussé,

commit dfbe3123efb1c9f75a87b6ffdb446aad4ae484a4
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Thu Nov 26 15:35:19 2020 +0100

    misc: remap statuses in a transaction (#38579)

et puis j'ai vu jenkins rouge. Misère.

#27

Mis à jour par Frédéric Péters il y a plus de 2 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF