Erreur de migration Dolibarr 14 vers 15 : "Data too long"

Bonjour,

Je récupère un vieux Dolibarr. J’essaye de le passer en V15 depuis la V14. J’ai ces erreurs :

Erreur DB_ERROR_1406: ALTER TABLE llx_commandedet MODIFY COLUMN multicurrency_code varchar(3);
Data too long for column 'multicurrency_code' at row 1

Erreur DB_ERROR_1406: ALTER TABLE llx_facturedet MODIFY COLUMN multicurrency_code varchar(3);
Data too long for column 'multicurrency_code' at row 37784

Je ne comprends pas pourquoi :

MariaDB [dolibarr]> SELECT DISTINCT multicurrency_code FROM llx_commandedet;
+--------------------+
| multicurrency_code |
+--------------------+
| NULL               |
+--------------------+
1 row in set (0,001 sec)
MariaDB [dolibarr]> SELECT DISTINCT multicurrency_code FROM llx_facturedet;
+--------------------+
| multicurrency_code |
+--------------------+
| XPF                |
| NULL               |
|                    |
+--------------------+
3 rows in set (0,097 sec)

Une idée ?

J’ai trouvé la valeur NULL était stockée comme la chaine de caractère « NULL » et non comme la valeur NULL.

UPDATE llx_commandedet SET multicurrency_code = NULL where multicurrency_code = 'NULL'

UPDATE llx_facturedet SET multicurrency_code = NULL where multicurrency_code = 'NULL'

Et la migration passe …

1 « J'aime »

Hi.

La ligne contient le texte NULL (4 caractères) ? Peut-être il faudrait corriger en cochant NULL sur la ligne avec phpmyadmin ? à voir.

chrichri

Oui j’ai trouvé en temps, Dolibarr avait effectivement mis la chaine « NULL » au lieu de sa valeur (voir ma réponse précédente).