Erreur MAJ v15.0.3 vers 16.0.0

Bonjour,

En voulant faire la migration de la V15 vers la V16, j’ai ce message d’erreur :

Erreur DB_ERROR_1452: ALTER TABLE llx_element_contact ADD CONSTRAINT fk_element_contact_fk_c_type_contact FOREIGN KEY (fk_c_type_contact) REFERENCES llx_c_type_contact(rowid);
Cannot add or update a child row: a foreign key constraint fails (kombak48_dolibarr.#sql-1b69_107cd0, CONSTRAINT fk_element_contact_fk_c_type_contact FOREIGN KEY (fk_c_type_contact) REFERENCES llx_c_type_contact (rowid))

J’ai parcouru les tables llx_c_type_contact et llx_element_contact mais je ne trouve pas d’où peut venir l’erreur.

MYSQL 5.7.39-42 et PHP 7.4.30

Merci

Bonjour,
J’ai voulu teste une migration en local et j’ai eu la même chose

Finalement, la mise à jour est passé.

Il y avait une dizaine d’entrée datant de 2016 dans la table llx_element_contact qui faisait référence à l’index « 0 » de la table llx_c_type_contact or le premier index de cette table est « 10 ».

J’ai donc supprimer ces entrées et la mise à jour est passé… J’espère ne pas avoir fait une erreur mais pour le moment ça a l’air d’être OK.

Pour ma part, lors de la mise à jour de mon instance de test, j’ai ce message d’erreur :

Erreur DB_ERROR_1072: ALTER TABLE dbt_asset_model ADD INDEX idx_asset_model_pays (fk_pays);
Key column ‹ fk_pays › doesn’t exist in table

Quelqu’un peut-il m’aider ?

Peut-être une erreur sur cette requête ?

Request 168 sql=‹ CREATE TABLE dbt_asset_model( rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, entity integer DEFAULT 1 NOT NULL, ref varchar(128) NOT NULL, label varchar(255) NOT NULL, asset_type smallint NOT NULL, fk_pays integer DEFAULT 0, note_public text, note_private text, date_creation datetime NOT NULL, tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, fk_user_creat integer NOT NULL, fk_user_modif integer, import_key varchar(14), status smallint NOT NULL ) ENGINE=innodb; ›

PS : j’ai vérifié la table dbt_asset_model et je n’ai effectivement pas la colonne fk_pays

J’ai réussi à corrigé le problème en créant manuellement la colonne.

Maintenant j’ai un autre problème

Migration des chemins de photos pour les utilisateurs

Warning: unlink(…/core/boxes/box_members.php): Permission denied in /volume1/web/dolibarr_test/htdocs/core/lib/files.lib.php on line 1280 Warning: unlink(…/core/boxes/box_members.php): Permission denied in /volume1/web/dolibarr_test/htdocs/core/lib/files.lib.php on line 1291

Erreur: Echec de l’effacement du fichier ‹ …/core/boxes/box_members.php ›. Supprimez-le manuellement et actualisez la page pour continuer (F5).

En renommant le fichier box_members.php ça passe

J’arrive un peu après la bataille, mais j’ai régulièrement ce problème lors des MAJ.
Il se pose parce que les tables correspondantes sont encore en MyISAM. Il suffit de les alter en InnoDB pour que la migration passe bien.

Pour passer de 15.0.2 à 16.0.1 j’ai du passer ces changements :
ALTER TABLE llx_c_type_contact ENGINE=InnoDB;
ALTER TABLE llx_facture_fourn_rec ENGINE=InnoDB;
ALTER TABLE llx_societe ENGINE=InnoDB;
ALTER TABLE llx_projet ENGINE=InnoDB;
ALTER TABLE llx_c_units ENGINE=InnoDB;

Merci de ton retour mais pour ma part les tables étaient bien en innodb.

Je pense plutôt a des references a des index issu de « vieilles » versions qui subsité dans la base