[spip-dev] Compatibilité avec MySQL 5.7

Salut la liste,

actuellement SPIP crée pas mal de dates invalides ‘0000-00-00 00:00:00’.
C’est le cas par exemple des “date_redac” des articles, mais il y en a plein d’autres.
Cela n’est pas compatible avec MySQL 5.7

Je suis tombé sur ce “bug” en ayant paramètre (naïvement) mysql 5.6 avec NO_ZERO_DATE et NO_ZERO_IN_DATE

Il y a un article intéressant pour se préparer à migrer vers mysl5.7 :
https://www.digitalocean.com/community/tutorials/how-to-prepare-for-your-mysql-5-7-upgrade

.Gilles

Ces 0000 posent aussi beaucoup de problèmes à tous les critères de date (date_relative etc), qui sont hyper compliqués à cause des possibilités de mois vide, jour vide, etc. Si on est obligés de les remplacer par un champ “masque d’affichage de la date” (je dis ça au pif), ce sera tant mieux.

Et dans la base il faudrait enlever les NOT NULL pour champs facultatifs

exemple pour spip_articles :
date_redac datetime NOT NULL DEFAULT ‘0000-00-00 00:00:00’,

Ces modifs ne sont pas un petit chantier, car cela va impacter le core et plein de plugins qui jouent avec les dates (et notamment les déclaration par défaut).

Pour le NOT NULL il faut faire attention, car on a au contraire été obligé de les ajouter dans le passé pour le support de je sais plus quelle version (il faut exhumer), donc il faut s'assurer qu'on ne recasse pas un truc réparé dans le passé.

Je pense donc qu'il faut se concentrer sur la release 3.1 et mettre ce chantier au programme de la 3.2 juste derrière.

Tu peux déjà faire un ticket Gilles, je pense

Le ticket est en place :
https://core.spip.net/issues/3607

Ce sera pour SPIP 4, vu effectivement les incompatibilités avec les plugins existant :slight_smile: