Erreur lors mise à Jour 6.0.1 vers 7.0

Bonjour à tous,

Je rencontre l’erreur suivante lors de la mise à jour :
Erreur DB_ERROR_1292: ALTER TABLE llx_accounting_account MODIFY fk_pcg_version VARCHAR(20) CHARACTER SET utf8;
Incorrect datetime value: ‹ 0000-00-00 00:00:00 › for column ‹ tms › at row 1

Est-ce que je dois modifier les valeurs de la colonne tms ? (toutes les lignes sont à 0000-00-00 00:00:00)
Et si oui que dois-je mettre comme valeur ?
J’ai un accès via phpmyadmin

Merci d’avance pour vos conseils :happy:

Bonjour,

Est-ce que cela ne viendrait pas du fait que MySQL soit en mode STRICT, où les dates à 0000-00… sont considérées comme invalides ?

Dans ce cas, il faut désactiver le mode STRICT_TRANS_TABLES dans le fichier de configuration de MySQL :
- /etc/mysql/my.cnf (Linux Ubuntu) ;
- my.ini sous Windows.

On peut aussi le faire en ligne de commande si on a les droits adéquats.

Plus d’explications (en anglais) ici.

Bonjour,

J’ai eu la même erreur, en plusieurs exemplaires. Passage de la 6.0.5 à la 7.0 puis idem de la 7.0 à la 7.01. J’ai fait ignorer et tout ‹ semble › fonctionner mais au cas où :

Erreur DB_ERROR_1292: ALTER TABLE llx_accounting_account DROP FOREIGN KEY fk_accountingaccount_fk_pcg_version;
Incorrect datetime value: ‹ 0000-00-00 00:00:00 › for column ‹ tms › at row 1

Erreur DB_ERROR_1292: ALTER TABLE llx_accounting_account DROP FOREIGN KEY fk_accounting_account_fk_pcg_version;
Incorrect datetime value: ‹ 0000-00-00 00:00:00 › for column ‹ tms › at row 1

Erreur DB_ERROR_1292: ALTER TABLE llx_accounting_account MODIFY fk_pcg_version VARCHAR(20) CHARACTER SET utf8;
Incorrect datetime value: ‹ 0000-00-00 00:00:00 › for column ‹ tms › at row 1

Erreur DB_ERROR_1292: ALTER TABLE llx_accounting_account MODIFY fk_pcg_version VARCHAR(20) COLLATE utf8_unicode_ci;
Incorrect datetime value: ‹ 0000-00-00 00:00:00 › for column ‹ tms › at row 1

Erreur DB_ERROR_1292: ALTER TABLE llx_accounting_account MODIFY account_number VARCHAR(20) CHARACTER SET utf8;
Incorrect datetime value: ‹ 0000-00-00 00:00:00 › for column ‹ tms › at row 1

Erreur DB_ERROR_1292: ALTER TABLE llx_accounting_account MODIFY account_number VARCHAR(20) COLLATE utf8_unicode_ci;
Incorrect datetime value: ‹ 0000-00-00 00:00:00 › for column ‹ tms › at row 1

Erreur DB_ERROR_1292: ALTER TABLE llx_accounting_account ADD CONSTRAINT fk_accounting_account_fk_pcg_version FOREIGN KEY (fk_pcg_version) REFERENCES llx_accounting_system (pcg_version);
Incorrect datetime value: ‹ 0000-00-00 00:00:00 › for column ‹ tms › at row 1

Erreur DB_ERROR_1292: ALTER TABLE llx_accounting_account ADD COLUMN import_key varchar(14);
Incorrect datetime value: ‹ 0000-00-00 00:00:00 › for column ‹ tms › at row 1

Erreur DB_ERROR_1292: ALTER TABLE llx_accounting_account ADD COLUMN extraparams varchar(255);
Incorrect datetime value: ‹ 0000-00-00 00:00:00 › for column ‹ tms › at row 1

Erreur DB_ERROR_CANNOT_ADD_FOREIGN_KEY_CONSTRAINT: ALTER TABLE llx_website_account ADD CONSTRAINT llx_website_account_fk_website FOREIGN KEY (fk_website) REFERENCES llx_website(rowid);
Cannot add foreign key constraint

Les erreurs sont toutes liées à la même chose sauf la dernière. Si quelqu’un a une piste je prends, gros merci à la clé :happy:

Bonjour,
une solution pour régler le problème:

Dans phpmyadmin variable serveur recherche ‹ sql mode ›
- Modifier les paramètres en enlevant ‹ NO_ZERO_IN_DATE,NO_ZERO_DATE ›
- Executer la requête:
UPDATE llx_accounting_account SET datec= ‹ 1000-01-01 00:00:00 › WHERE datec= ‹ 0000-00-00 00:00:00 ›
- Modifier les paramètres en rajoutant ‹ NO_ZERO_IN_DATE,NO_ZERO_DATE ›
- Refaire relancer la passe de migration

Bonne journée

1 « J'aime »

Whaou, merci pour ce suivi !

Je teste ça à la prochaine mise à jour et je posterai le résultat.

Re,

Je veux faire le test pour la 7.0.1 -> 7.0.2 mais je bloque sur " Dans phpmyadmin variable serveur recherche ‹ sql mode › "

Où est-ce dans PhpMyAdmin ? J’ai beau fouiller partout je ne trouve pas :unhappy:

Mille mercis !

j’ai le même soucis
cela ne fonctionne pas avec l’install par défaut de mysql 5.7
c’est expliqué sur https://stackoverflow.com/questions/9192027/invalid-default-value-for-create-date-timestamp-field
j’ai du faire un update llx_accounting_account set tms = ‹ 1990-01-01 00:00:01 › et cela fonctionne
il faudrait adapter les valeurs par défaut, car j’imagine que dolibarr ne crée pas de valeur par défaut et que ca fait planter l’appli plus tard …

Merci pour ce retour !

J’espère que ce sera pris en compte pour les futures MAJ :-p

Pour info, lors du passage de la 7.0.3 à la 8.0.0, j’ai eu des messages similaires :

Erreur DB_ERROR_CANNOT_ADD_FOREIGN_KEY_CONSTRAINT: ALTER TABLE llx_societe_account ADD CONSTRAINT llx_societe_account_fk_website FOREIGN KEY (fk_website) REFERENCES llx_website(rowid);
Cannot add foreign key constraint

Erreur DB_ERROR_CANNOT_ADD_FOREIGN_KEY_CONSTRAINT: ALTER TABLE llx_societe_account ADD CONSTRAINT llx_societe_account_fk_societe FOREIGN KEY (fk_soc) REFERENCES llx_societe(rowid);
Cannot add foreign key constraint

Mais seulement deux. Tous les conseils sont les bienvenus…

Pour info supplémentaire, cette installation de Dolibarr est la même depuis pas loin de 10 ans, d’upgrade en upgrade et de serveur en serveur. Et elle est toujours au top. Avec ce petit soucis en moins ce serait parfaitement parfait :happy:

Merci pour ce travail !

Bonjour
Toujours cette même erreur depuis quelques versions

Error DB_ERROR_1292: ALTER TABLE llx_accounting_account ADD CONSTRAINT fk_accounting_account_fk_pcg_version FOREIGN KEY (fk_pcg_version) REFERENCES llx_accounting_system (pcg_version);
Incorrect datetime value: ‹ 0000-00-00 00:00:00 › for column ‹ tms › at row 1

Dolibarr est en local . Os ubuntu 18.04

Je fais ignorer, cela à l’air de fonctionner mais je préférerai un joli OK à un KO.

Pas trop envie de rentrer dans mysql mais si quelqu’un à un pas à pas, je suis preneur.
Merci, à bientôt