Mysql errors in migration process

Hello,
i’ve just migrate one dolibarr from 3.5.4 to 10.0.7 and faced several errors : invalid default value for date_cre on lot of tables and Specified key was too long; max key length is 767 bytes on index creations.

here is the full log of errors :
Erreur DB_ERROR_1067: ALTER TABLE llx_societe ADD INDEX idx_societe_barcode (barcode);
Invalid default value for ‘date_cre’

Erreur DB_ERROR_1071: ALTER TABLE llx_c_email_templates ADD UNIQUE INDEX uk_c_email_templates(entity, label, lang);
Specified key was too long; max key length is 767 bytes

Erreur DB_ERROR_1071: ALTER TABLE llx_budget_lines ADD UNIQUE INDEX uk_budget_lines (fk_budget, fk_project_ids);
Specified key was too long; max key length is 767 bytes

Erreur DB_ERROR_1071: ALTER TABLE llx_advtargetemailing ADD UNIQUE INDEX uk_advtargetemailing_name (name);
Specified key was too long; max key length is 767 bytes

Erreur DB_ERROR_1071: ALTER TABLE llx_ecm_files ADD UNIQUE INDEX uk_ecm_files (filepath, filename, entity);
Specified key was too long; max key length is 767 bytes

Erreur DB_ERROR_1067: ALTER TABLE llx_expedition ADD COLUMN fk_projet integer DEFAULT NULL after fk_soc;
Invalid default value for ‘date_cre’

Erreur DB_ERROR_1071: ALTER TABLE llx_product_attribute ADD CONSTRAINT unique_ref UNIQUE (ref);
Specified key was too long; max key length is 767 bytes

Erreur DB_ERROR_1071: ALTER TABLE llx_product_attribute_value ADD CONSTRAINT unique_ref UNIQUE (fk_product_attribute,ref);
Specified key was too long; max key length is 767 bytes

Erreur DB_ERROR_1071: ALTER TABLE llx_default_values ADD UNIQUE INDEX uk_default_values(type, entity, user_id, page, param);
Specified key was too long; max key length is 767 bytes

Erreur DB_ERROR_1067: ALTER TABLE llx_facture ADD COLUMN fk_fac_rec_source integer;
Invalid default value for ‘date_cre’

Erreur DB_ERROR_1071: ALTER TABLE llx_product_attribute_value ADD UNIQUE INDEX uk_product_attribute_value (fk_product_attribute, ref);
Specified key was too long; max key length is 767 bytes

Erreur DB_ERROR_1067: ALTER TABLE llx_propal ADD COLUMN last_main_doc varchar(255);
Invalid default value for ‘date_cre’

Erreur DB_ERROR_1067: ALTER TABLE llx_commande ADD COLUMN last_main_doc varchar(255);
Invalid default value for ‘date_cre’

Erreur DB_ERROR_1067: ALTER TABLE llx_facture ADD COLUMN last_main_doc varchar(255);
Invalid default value for ‘date_cre’

Erreur DB_ERROR_1067: ALTER TABLE llx_expedition ADD COLUMN last_main_doc varchar(255);
Invalid default value for ‘date_cre’

Erreur DB_ERROR_1067: ALTER TABLE llx_livraison ADD COLUMN last_main_doc varchar(255);
Invalid default value for ‘date_cre’

Erreur DB_ERROR_1067: ALTER TABLE llx_commande_fournisseur ADD COLUMN last_main_doc varchar(255);
Invalid default value for ‘date_cre’

Erreur DB_ERROR_1071: ALTER TABLE llx_website_page MODIFY COLUMN pageurl varchar(255);
Specified key was too long; max key length is 767 bytes

Erreur DB_ERROR_1067: ALTER TABLE llx_livraison ADD COLUMN import_key varchar(14);
Invalid default value for ‘date_cre’

Erreur DB_ERROR_1067: ALTER TABLE llx_livraison ADD COLUMN extraparams varchar(255);
Invalid default value for ‘date_cre’

Erreur DB_ERROR_1067: ALTER TABLE llx_societe MODIFY COLUMN ref_ext varchar(255);
Invalid default value for ‘date_cre’

Erreur DB_ERROR_1067: ALTER TABLE llx_expedition MODIFY COLUMN ref_ext varchar(255);
Invalid default value for ‘date_cre’

Erreur DB_ERROR_1067: ALTER TABLE llx_livraison MODIFY COLUMN ref_ext varchar(255);
Invalid default value for ‘date_cre’

Erreur DB_ERROR_1071: ALTER TABLE llx_c_email_senderprofile ADD UNIQUE INDEX uk_c_email_senderprofile(entity, label, email);
Specified key was too long; max key length is 767 bytes

Erreur DB_ERROR_1071: ALTER TABLE llx_resource ADD UNIQUE INDEX uk_resource_ref (ref, entity);
Specified key was too long; max key length is 767 bytes

Erreur DB_ERROR_1067: ALTER TABLE llx_commande MODIFY COLUMN amount_ht double(24,8) default 0;
Invalid default value for ‘date_cre’

Erreur DB_ERROR_1067: ALTER TABLE llx_commande_fournisseur MODIFY COLUMN amount_ht double(24,8);
Invalid default value for ‘date_cre’

Erreur DB_ERROR_1067: ALTER TABLE llx_societe MODIFY COLUMN capital double(24,8);
Invalid default value for ‘date_cre’

Erreur DB_ERROR_1071: ALTER TABLE llx_ecm_files ADD UNIQUE INDEX uk_ecm_files (filepath, filename, entity);
Specified key was too long; max key length is 767 bytes

Erreur DB_ERROR_1071: ALTER TABLE llx_emailcollector_emailcollectorfilter ADD UNIQUE INDEX uk_emailcollector_emailcollectorfilter (fk_emailcollector, type, rulevalue);
Specified key was too long; max key length is 767 bytes

Erreur DB_ERROR_1071: ALTER TABLE llx_mailing_unsubscribe ADD UNIQUE uk_mailing_unsubscribe(email, entity, unsubscribegroup);
Specified key was too long; max key length is 767 bytes

Hi,

Could you check that you are not using utf8mb4_general_ci for database collation ?
Dolibarr should have utf8_general_ci

1 Like

Great answer, thank you. Everything is ok now.
Note for those with the same problem : you can change db, tables and columns collations easily in recent phpmyadmin instance (see bottom of screenshot)