Project

General

Profile

Développement #100573

sql: encore une dépendance sur le disque local via StorableObject.get_new_id() ?

Added by Benjamin Dauvergne 7 days ago. Updated 6 days ago.

Status:
Solution déployée
Priority:
Normal
Target version:
-
Start date:
10 January 2025
Due date:
% Done:

0%

Estimated time:
Patch proposed:
No
Planning:
No

Description

Ça concernerait 2 classes:
  • TrackingCode (génère son id via random)
  • CustomView
  • Token (génère son id via random)
  • Role

Pour les 3 premières CustomView on pourrait passer à un id serial, supprimer la surcharge de .store() et utiliser le code générique de SqlMixin.store().

Pour le 4ème Role je suppose que ça ne concerne que les tests, en production les rôles viennent exclusivement de la synchro avec authentic dans hobo_notify.py, on pourrait simplement remplacer get_new_id() par str(uuid.uuid4()).

PS: amendé

Associated revisions

Revision 4d27f586 (diff)
Added by Frédéric Péters 7 days ago

sql: migrate custom view id column to SERIAL (#100573)

History

#1

Updated by Benjamin Dauvergne 7 days ago

  • Description updated (diff)
#2

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

  • Status changed from Nouveau to En cours
  • Assignee set to Frédéric Péters

Pour CustomView ça fait en effet un accès disque pour lire .../custom-views/.maxid qui n'existera pas, et qui ne sera pas créé puisque create=False, et ensuite côté SQL la valeur obtenue (donc toujours 1) par self.get_new_id() ne sera pas utilisée, bref

@@ -4259,7 +4259,6 @@ class CustomView(SqlMixin, wcs.custom_views.CustomView):
         conn, cur = get_connection_and_cursor()
         if not self.id:
             column_names = sql_dict.keys()
-            sql_dict['id'] = self.get_new_id()
             sql_statement = '''INSERT INTO %s (%s)
                                VALUES (%s)
                                RETURNING id''' % (
#3

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

(mmm, pas tout à fait)

#4

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

(mmm, pas tout à fait)

ensuite côté SQL la valeur obtenue (donc toujours 1) par self.get_new_id() ne sera pas utilisée, (...)

Pas toujours 1, la suite c'est un .keys() qui récupère tous les id puis un +1 sur le plus gros.

#5

Updated by Robot Gitea 7 days ago

Frédéric Péters (fpeters) a ouvert une pull request sur Gitea concernant cette demande :

#6

Updated by Robot Gitea 7 days ago

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

Updated by Robot Gitea 7 days ago

  • Status changed from Solution proposée to Solution validée

Benjamin Dauvergne (bdauvergne) a approuvé une pull request sur Gitea concernant cette demande :

#8

Updated by Robot Gitea 7 days ago

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

Frédéric Péters (fpeters) a mergé une pull request sur Gitea concernant cette demande :

#9

Updated by Transition automatique 6 days ago

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

Also available in: Atom PDF