Dolibarr

De Documentation Anelosimus
Aller à : navigation, rechercher

L'installation de la version 6.0.3 de Dolibarr échoue sous Debian Stretch avec MariaDB. Possiblement à cause d'une différence entre Mysql et MariaDB en fait.

https://www.dolibarr.fr/forum/3-installation/55051-ovh-mutualise-installation-dolibarr-3-8-2

Les indexes sur certains champs trop longs ne passent pas et renvoies des erreurs du type :
DB_ERROR_1071 Specified key was too long; max key length is 767 bytes
J'ai procédé en changeant le format d'enregistrement des tables InnoDB :

https://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_large_prefix

https://stackoverflow.com/questions/43379717/how-to-enable-large-index-in-mariadb-10

Donc il faut commencer par appliquer ces commandes globales SQL :
SET GLOBAL innodb_file_format=Barracuda;

SET GLOBAL innodb_file_per_table=ON;

SET GLOBAL innodb_large_prefix=1;

Mais il faut aussi faire un ALTER TABLE %TABLE% ROW_FORMAT=DYNAMIC; sur chaque table.

Après un premier essai d'installation infructueux, les tables sont déjà créées. En se connectant avec la commande mysql à la base, on génère la liste des altérations avec cette commande :
USE INFORMATION_SCHEMA; 
SELECT CONCAT("ALTER TABLE `", TABLE_SCHEMA,"`.`", TABLE_NAME, "` ROW_FORMAT=DYNAMIC;") 
AS MySQLCMD FROM TABLES 
WHERE TABLE_SCHEMA = "%NOM_DE_LA_BASE";

Le format de sortie de mysql trace un rectangle autour des résultats. Je n'ai pas cherché s'il y avait une option, en passant le résultat dans un éditeur de texte j'ai viré par chercher-remplacer les barres droites, et le résultat a très bien fonctionné par un simple copier coller dans l'invite mysql.

De retour sur l'installation de dolibarr, les commandes ALTER fonctionnent désormais sans erreur !