pb foreign key too long

Salut

sur une fresh install dolibarr 6.0.3 et 6.0.4 sur debian avec le package deb j’ai une erreur :

Création des clés étrangères et des index pour la table llx_advtargetemailing.key
Request 280 : ALTER TABLE llx_advtargetemailing ADD UNIQUE INDEX uk_advtargetemailing_name (name)
Erreur SQL DB_ERROR_1071 Specified key was too long; max key length is 767 bytes

Création des clés étrangères et des index pour la table llx_bookmark.key
Request 299 : ALTER TABLE llx_bookmark ADD UNIQUE uk_bookmark_url (fk_user, url)
Erreur SQL DB_ERROR_1071 Specified key was too long; max key length is 767 bytes

[...]

Sur ma base j’ai créé le user, la bdd et les privilèges en amont de l’install :

CREATE DATABASE dolibarr;
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON dolibarr.* TO dolibarr@localhost IDENTIFIED BY 'password!';
FLUSH PRIVILEGES;

Est-ce que vous reproduisez ? (debian 9 / mysql serveur le tout à jour / install du package deb du sourceforge)

Ça n’empêche pas de pouvoir continuer et de finir l’installation puis d’utiliser doli derrière, bien que je sois pas allé bien loin.
Est-ce que cela va gêner dans l’utilisation derrière ? C’est pour une install en prod, je suis pas hyper rassuré…

Merci

J’ai trouvé c’était l’encoding à la création de la base, Je m’auto-répond du coup… :laugh:

J’ai refait mon install et j’ai utilisé ces directives pour faire ma base de donnée :

CREATE DATABASE dolibarr DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON dolibarr.* TO 'dolibarrdebian'@'password';
FLUSH PRIVILEGES;

Si ça peut servir à qqun un jour…

3 « J'aime »

Si je vous dis que ce jour est arrivé :laugh:

Même problème rencontré sur un serveur Debian 9…3 avec « mariadb », merci

Même chose sur une debian 9.5

Merci, même pb
j’ai supprimé la base

puis l’ai recréée

et j’ai relancé l’install

Bonjour :tongue: .
Merci pour ce post. Ma base était en utf8mb4_unicode_ci et j’obtenais, à chaque essais, ces erreurs.
J’ai corrigé en utf8_general_ci et l’installation se passe sans erreur.