Dolibarr : Différence entre versions
(Page créée avec « 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://ww... ») |
(Balise : Éditeur visuel) |
||
| Ligne 1 : | Ligne 1 : | ||
L'installation de la version 6.0.3 de Dolibarr échoue sous Debian Stretch avec MariaDB. | 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. | 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 | 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 | + | Les indexes sur certains champs trop longs ne passent pas et renvoies des erreurs du type : <blockquote>DB_ERROR_1071 Specified key was too long; max key length is 767 bytes</blockquote>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://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 | https://stackoverflow.com/questions/43379717/how-to-enable-large-index-in-mariadb-10 | ||
| − | Donc il faut commencer par appliquer ces commandes globales SQL : | + | |
| + | Donc il faut commencer par appliquer ces commandes globales SQL :<syntaxhighlight lang="sql"> | ||
SET GLOBAL innodb_file_format=Barracuda; | SET GLOBAL innodb_file_format=Barracuda; | ||
| + | |||
SET GLOBAL innodb_file_per_table=ON; | SET GLOBAL innodb_file_per_table=ON; | ||
| + | |||
SET GLOBAL innodb_large_prefix=1; | SET GLOBAL innodb_large_prefix=1; | ||
| + | </syntaxhighlight> | ||
Mais il faut aussi faire un ALTER TABLE %TABLE% ROW_FORMAT=DYNAMIC; sur chaque table. | 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; | + | 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 :<syntaxhighlight lang="sql"> |
| − | SELECT | + | USE INFORMATION_SCHEMA; |
| − | CONCAT("ALTER TABLE `", TABLE_SCHEMA,"`.`", TABLE_NAME, "` ROW_FORMAT=DYNAMIC;") | + | SELECT CONCAT("ALTER TABLE `", TABLE_SCHEMA,"`.`", TABLE_NAME, "` ROW_FORMAT=DYNAMIC;") |
AS MySQLCMD FROM TABLES | AS MySQLCMD FROM TABLES | ||
WHERE TABLE_SCHEMA = "%NOM_DE_LA_BASE"; | WHERE TABLE_SCHEMA = "%NOM_DE_LA_BASE"; | ||
| + | </syntaxhighlight> | ||
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. | 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 ! | De retour sur l'installation de dolibarr, les commandes ALTER fonctionnent désormais sans erreur ! | ||
Version actuelle datée du 1 novembre 2017 à 23:48
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 bytesJ'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 !