Fais comme tu veux, tu m’a tagué je t’ai donnée une réponse et ce qu’il faut mettre après a toi de voir ce que tu fais. Je ne peux pas te fournir plus d’élément que ce que j’ai deja fait pour t’aider.
Et je t’en remercie.
Je veux juste comparer avec une base vierge, pour pas faire de conneries. Parce que pour moi, ca n’est pas aussi simple. Les colonnes ne vont pas changer de type si tu changes juste celui de la table. Je n’ai donc pas le choix que de vérifier table par table.
Pourrais-tu me donner l’url du zip de la derniere stable stp? et après, je me débrouille.
Quand j’essaye https://github.com/jeedom/core/archive/4.3.14.zip ca ne marche pas.
Merci pour l’article qui confirme bien ce que je pense : il faut modifier le type de la base, de chaque table, et de chaque colonnes qui était précedement en utf8. Et prendre en compte general ou unicode.
Bref, faire du cas par cas. Ce que je vais faire.
Avec plaisir (j’imagine bien que si la modification du core date de 2020, je dois pas être le seul dans ce cas).
ATTENTION par contre, je n’ai aucun recul sur les potentiels effets de bords de ces modifications (il peut y en avoir sur les tailles des champs et des index apparemment).
Après analyse, seule la connexion a été passée en utf8mb4_unicode_ci, et du coup, la DB, les tables et les champs créées lors de l’installation récupère cette collation.
Pour le changement au niveau de la DB, mon user jeedom n’a pas les droits de le faire via une requête ALTER DATABASE. Je l’ai donc fait au niveau de l’interface d’adminer :
Ensuite, il suffit de faire un ALTER TABLE sur chaque table en utf8_unicode_ci qu’on voudrait passer en utf8mb4_unicode_ci. Bonne nouvelle : si c’est fait via une requete, les champs sont modifiés aussi. (Contrairement à si on le fait via l’interface d’adminer etonnement).
Dans mon cas, j’ai listé ces tables :
ATTENTION : il y a des tables spécifiques à certains plugins, que je n’ai pas listé ici.
ALTER TABLE cmd CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE config CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE cron CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE dataStore CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE eqLogic CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE eqReal CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE history CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE historyArch CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE interactDef CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE interactQuery CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE listener CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE message CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE note CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE `object` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE plan CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE plan3d CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE plan3dHeader CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE planHeader CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE scenario CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE scenarioElement CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE scenarioExpression CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE scenarioSubElement CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE `update` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE `user` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE view CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE viewData CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE viewZone CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE widgets CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE timeline CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE cache CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Note : la table historyArch peut être un peu longue a convertir
Et évidemment, pensez à faire un backup avant, on ne sait jamais.
Ah ben tiens, toi tu es en general, alors que la connexion est en unicode. Bizarre…
Attention : je ne précaunise rien moi. J’indique juste ce que j’ai constaté.
Si tu ne sais pas comment executer une requete SQL avec adminer, je te conseille fortement de te documenter.
Sur ma version (la derniere), j’ai un bouton « Requete SQL » tout en haut a gauche. Ne pas oublier de selectionner la base. Et dans ton cas, de modifier ma requete pour mettre tes tables en utf8mb4_unicode_ci