Project

General

Profile

Development #38579

Mapping de workflow en mode postgresql

Added by Frédéric Péters almost 2 years ago. Updated 3 days ago.

Status:
Solution déployée
Priority:
Normal
Target version:
-
Start date:
17 Dec 2019
Due date:
% Done:

0%

Estimated time:
Patch proposed:
Yes
Planning:
No

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.


Files

0001-misc-remap-statuses-in-a-transaction-38579.patch (6.07 KB) 0001-misc-remap-statuses-in-a-transaction-38579.patch Benjamin Dauvergne, 26 Nov 2020 03:35 PM
0001-misc-remap-statuses-in-a-transaction-38579.patch (8.06 KB) 0001-misc-remap-statuses-in-a-transaction-38579.patch Benjamin Dauvergne, 26 Nov 2020 06:45 PM
0001-misc-remap-statuses-in-a-transaction-38579.patch (8.15 KB) 0001-misc-remap-statuses-in-a-transaction-38579.patch Benjamin Dauvergne, 07 Dec 2020 09:56 AM
0001-admin-do-not-consider-drafts-on-remapping-status-492.patch (1.2 KB) 0001-admin-do-not-consider-drafts-on-remapping-status-492.patch Benjamin Dauvergne, 08 Dec 2020 06:30 PM
0002-misc-remap-statuses-in-a-transaction-38579.patch (8.68 KB) 0002-misc-remap-statuses-in-a-transaction-38579.patch Benjamin Dauvergne, 08 Dec 2020 06:30 PM
0001-misc-remap-statuses-in-a-transaction-38579.patch (8.6 KB) 0001-misc-remap-statuses-in-a-transaction-38579.patch Benjamin Dauvergne, 22 Mar 2021 11:44 AM
0001-misc-remap-statuses-in-a-transaction-38579.patch (8.63 KB) 0001-misc-remap-statuses-in-a-transaction-38579.patch Benjamin Dauvergne, 29 Mar 2021 11:39 AM
0001-misc-remap-statuses-in-a-transaction-38579.patch (8.77 KB) 0001-misc-remap-statuses-in-a-transaction-38579.patch Benjamin Dauvergne, 12 Apr 2021 10:10 AM
0003-to-fixup-use-a-generator-to-silence-pylint.patch (904 Bytes) 0003-to-fixup-use-a-generator-to-silence-pylint.patch Benjamin Dauvergne, 24 Sep 2021 10:00 AM
0001-misc-remap-statuses-in-a-transaction-38579.patch (8.77 KB) 0001-misc-remap-statuses-in-a-transaction-38579.patch Benjamin Dauvergne, 24 Sep 2021 10:00 AM
0002-to-fixup-silence-pylint-by-using-conn-to-commit.patch (888 Bytes) 0002-to-fixup-silence-pylint-by-using-conn-to-commit.patch Benjamin Dauvergne, 24 Sep 2021 10:00 AM
0001-misc-remap-statuses-in-a-transaction-38579.patch (10.6 KB) 0001-misc-remap-statuses-in-a-transaction-38579.patch Benjamin Dauvergne, 20 Oct 2021 10:29 AM
0001-misc-remap-statuses-in-a-transaction-38579.patch (10.6 KB) 0001-misc-remap-statuses-in-a-transaction-38579.patch Benjamin Dauvergne, 21 Oct 2021 07:20 PM

Related issues

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

Actions

Associated revisions

Revision dfbe3123 (diff)
Added by Benjamin Dauvergne 3 days ago

misc: remap statuses in a transaction (#38579)

History

#1

Updated by Frédéric Péters over 1 year ago

  • Related to Bug #22355: le remapping des statuts sur changement d'un workflow est parfois trop long added
#3

Updated by Benjamin Dauvergne 11 months ago

  • Assignee set to Benjamin Dauvergne
#4

Updated by Benjamin Dauvergne 11 months ago

#5

Updated by Benjamin Dauvergne 11 months ago

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

Updated by Frédéric Péters 11 months ago

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

Updated by Frédéric Péters 11 months ago

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

#10

Updated by Benjamin Dauvergne 11 months ago

  • Status changed from Solution proposée to En cours
#11

Updated by Benjamin Dauvergne 11 months ago

  • Status changed from En cours to Solution proposée

Échec intermittent du build.

#17

Updated by Frédéric Péters about 1 month ago

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

#20

Updated by Benjamin Dauvergne 10 days ago

Rebasé.

#21

Updated by Frédéric Péters 6 days ago

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

Updated by Benjamin Dauvergne 5 days ago

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

Updated by Frédéric Péters 4 days ago

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

unmaped.

#24

Updated by Frédéric Péters 4 days ago

unmapped, même.

#26

Updated by Frédéric Péters 3 days ago

  • Status changed from Solution proposée to 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

Updated by Frédéric Péters 3 days ago

  • Status changed from Résolu (à déployer) to Solution déployée

Also available in: Atom PDF