Bonjour,
OS : Debian 12
PHP : 8.2
DB : postgresql 15.10
Lors de la mise à jour depuis la 20.0.3 vers 20.0.4, j’ai des erreurs qui remontent via sylog, relatives à des échecs de requête (du type table existe déjà), est-ce normal ?
Aucune erreur ne s’affiche sur les pages web.
Cliquer sur Démarrer m’amène à l’URL : install/upgrade.php?action=upgrade&selectlang=fr_FR&versionfrom=19.0.0&versionto=20.0.0#
Connexion au serveur : /run/postgresql OK
Connexion à la base : dolibarr OK
Version du serveur de base de données 15.10 (Debian 15.10-0+deb12u1)
Merci de patienter quelques instants…
Choix du script de migration 19.0.0-20.0.0.sql
Erreurs syslog :
ERROR: column "block_if_negative" of relation "llx_c_holiday_types" already exists
STATEMENT: ALTER TABLE llx_c_holiday_types ADD COLUMN block_if_negative integer NOT NULL DEFAULT 0;
ERROR: column "sortorder" of relation "llx_c_holiday_types" already exists
STATEMENT: ALTER TABLE llx_c_holiday_types ADD COLUMN sortorder smallint;
ERROR: column "phone" of relation "llx_resource" already exists
STATEMENT: ALTER TABLE llx_resource ADD COLUMN phone varchar(255) DEFAULT NULL;
...
ERROR: relation "llx_asset_model" does not exist
STATEMENT: ALTER TABLE llx_asset_model ADD COLUMN ref_ext varchar(255);
Puis étape suivante, URL : install/upgrade2.php?versionfrom=19.0.0&versionto=20.0.0#
Migration de la base (données)
Mise à jour: Rechargement du module Comptabilité (partie double)
Mise à jour: Rechargement du module Événements/Agenda
Mise à jour: Rechargement du module Banques et caisses
Mise à jour: Rechargement du module Factures et avoirs
Mise à jour: Rechargement du module Fournisseurs
Mise à jour: Rechargement du module Emprunts
Mise à jour: Rechargement du module Marges
Mise à jour: Rechargement du module Salaires
Mise à jour: Rechargement du module Services
Mise à jour: Rechargement du module Tiers
Mise à jour: Rechargement du module Utilisateurs & Groupes
Migration terminée
Erreurs syslog :
ERROR: column "birth" of relation "llx_user" already exists
STATEMENT: ALTER TABLE llx_user ADD COLUMN birth date
ERROR: column "dateemployment" of relation "llx_user" already exists
STATEMENT: ALTER TABLE llx_user ADD COLUMN dateemployment date
...
ERROR: duplicate key value violates unique constraint "uk_const"
DETAIL: Key (name, entity)=(MAIN_MODULE_MARGIN_TABS_0, 1) already exists.
STATEMENT: INSERT INTO llx_const (name, type, value, note, visible, entity) VALUES ('MAIN_MODULE_MARGIN_TABS_0', 'chaine', 'product:+margin:Margins:margins:$user->rights->margins->liretous:/margin/tabs/productMargins.php?id=__ID__', null, '0', 1)
ERROR: current transaction is aborted, commands ignored until end of transaction block
STATEMENT: INSERT INTO llx_const (name, type, value, note, visible, entity) VALUES ('MAIN_MODULE_MARGIN_TABS_1', 'chaine', 'thirdparty:+margin:Margins:margins:empty($user->socid) && $user->rights->margins->liretous && ($object->client > 0):/margin/tabs/thirdpartyMargins.php?socid=__ID__', null, '0', 1)
ERROR: current transaction is aborted, commands ignored until end of transaction block
STATEMENT: SELECT count(*) as nb FROM llx_const WHERE name = 'MARGIN_TYPE' AND entity = 1
...
Etape suivante, URL install/step5.php?versionfrom=19.0.0&versionto=20.0.0
Dolibarr a été mis à jour avec succès.
J’ai fait un dump de la structure de la base (pg_dump --schema-only
) avant et après la mise à jour, voici le diff :
diff struct-20.0.3.sql struct-20.0.4.sql
19367a19368,19374
> -- Name: uk_facture_fourn_det_rec_extrafields; Type: INDEX; Schema: public; Owner: dolibarr
> --
>
> CREATE UNIQUE INDEX uk_facture_fourn_det_rec_extrafields ON public.llx_facture_fourn_det_rec_extrafields USING btree (fk_object);
>
>
> --
Pourtant le fichier htdocs/install/mysql/migration/19.0.0-20.0.0.sql n’a pas changé (hormis quelques espaces dans les commentaires) entre la 20.0.3 et la 20.0.4.