Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation =
Problème connu sur Dolibarr, faites impérativement une sauvegarde de la base de données avant puis
- Renommer votre install.lock en 1install.lock
- Entrer l’url suivant :
votre_nom_de_domaine.fr/install/repair.php?force_utf8_on_tables=confirmed
- Attendre la fin de la procédure et cela devrait rentrer dans l’ordre.
- Renommer votre 1install.lock en install.lock.
Comptabilité avancée - Comptes produits
Dans la compta avancée, la liaison factures client peut déclencher le message cité ci-dessus (constaté avec la version 17.03 de Dolibarr).
La solution citée précédemment n’a pas fonctionné dans mon cas car deux tables refusent la mise à jour de leur collation. Il s’agit des tables accounting_account et accounting_system. À l’origine, ces tables étaient en utf8mb3_general_ci.
Le champ concerné est pcg_version qui est lié à fk_pcg_version. Comme il y a une contrainte de clé, il est impossible de mettre à jour les tables.
Une solution radicale proposée sur le forum est de supprimer la vérification de cette contrainte (solution radicale qui peut avoir des inconvénients) :
ALTER TABLE llx_accounting_account NOCHECK CONSTRAINT ALL;
Pour ma part, j’ai trouvé la solution suivante :
- exporter les deux tables accounting_account et accounting_system
- supprimer les deux tables de la base en désactivant le contrôle des clés étrangères.
- dans l’export d’accounting_system, remplacer DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci par DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC
- ré-importer la table dans la base
- faire la même manœuvre avec la table accounting_account
Retrouvez quelques éléments dans le forum Dolibarr :
https://www.dolibarr.fr/forum/t/comptabilite-avance-compte-produits/29821/4
https://www.dolibarr.fr/forum/t/illegal-mix-of-collations-utf8-unicode-ci-implici/26923