Projet

Général

Profil

Actions

Anomalie #1158

fermé

Erreur lors de la création d'un nouveau statut car l'ID est déjà utilisé dans la base de données

Ajouté par Adrien Pachkoff il y a environ 6 ans. Mis à jour il y a environ 6 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
Database
Version cible:
Début:
15/02/2018
Echéance:
% réalisé:

100%

Temps estimé:
Version utilisée:

Description

Bonjour,

Lorsque j'essaie de créer un nouveau statut, ça affiche

- ERREUR -
statut n'a pas été ajouté :(

et dans les logs

Query error: INSERT INTO "galette_statuts" ("libelle_statut", "priorite_statut") VALUES ('Trésorier adjoint', '15') PDOException: SQLSTATE[23505]: Unique v
  iolation: 7 ERROR:  duplicate key value violates unique constraint "galette_statuts_pkey"

avec un ID qui augmente à chaque tentative, jusqu'à ce qu'il dépasse 10 et que ça fonctionne enfin.

J'utilise PostgreSQL sur Debian stable.


Demandes liées 1 (0 ouverte1 fermée)

Lié à Galette - Anomalie #1374: Unable to add new title on defaut installation with postgresFerméJohan Cwiklinski14/12/2019

Actions

Mis à jour par Johan Cwiklinski il y a environ 6 ans

  • Version cible mis à 0.9.1

En effet... Lors de l'insertion des données de base, les identifiants sont fournis, et la séquence n'est pas sollicitée... Elle reste donc à 1 comme l'indique la requête suivante :

SELECT last_value FROM galette_statuts_id_seq;

Il suffit pour contourner de définir la séquence à la bonne valeur :

SELECT setval('galette_statuts_id_seq', 10);

La correction côté Galette se fera du côté de l'installation, et sera totalement compatible avec le correctif direct ;) En revanche, il y a fort à parier que d'autres tables soufrent du même problème (typiquement, toutes les tables sur lesquelles une séquence est définie et dans lesquelles des données sont ajoutées lors de l'installation)

Mis à jour par Loïs Taulelle il y a environ 6 ans

Johan Cwiklinski a écrit :

En effet... Lors de l'insertion des données de base, les identifiants sont fournis, et la séquence n'est pas sollicitée... Elle reste donc à 1 comme l'indique la requête suivante :

[...]

Il suffit pour contourner de définir la séquence à la bonne valeur :
[...]

La correction côté Galette se fera du côté de l'installation, et sera totalement compatible avec le correctif direct ;) En revanche, il y a fort à parier que d'autres tables soufrent du même problème (typiquement, toutes les tables sur lesquelles une séquence est définie et dans lesquelles des données sont ajoutées lors de l'installation)

Après vérif rapide, ça doit être du côté d'ALTER SEQUENCE :

ALTER SEQUENCE [ IF EXISTS ] name [ START [ WITH ] start ]

Dans le sql d'installation, après la création de la séquence ET l'insertion des valeurs par défaut.

Ref: https://www.postgresql.org/docs/9.6/static/sql-altersequence.html

Mis à jour par Johan Cwiklinski il y a environ 6 ans

  • Statut changé de Nouveau à Résolu
  • % réalisé changé de 0 à 100

Mis à jour par Johan Cwiklinski il y a environ 6 ans

  • Statut changé de Résolu à Fermé

Mis à jour par Johan Cwiklinski il y a plus de 4 ans

  • Lié à Anomalie #1374: Unable to add new title on defaut installation with postgres ajouté
Actions

Formats disponibles : Atom PDF