Il ressemble à MySQL 5.7
est plus strict dans les types de géométrie que MySQL 5.6
. En tant que telles, les données qui étaient valides dans 5.6 est maintenant invalide dans 5.7 .
C'était le correctif du Bogue MySQL #76337 , dans la version MySQL 5.7.8 .
Dans ce cas, un LINESTRING
était stocké dans une colonne de type POINT
. Cela a fonctionné pendant près d'une décennie, mais pas plus. Changer la colonne pour taper LINESTRING
correction de l'erreur de chargement ci-dessus.
-- The Fix - run on MySQL 5.6 database before Upgrade/Export
ALTER TABLE routes MODIFY COLUMN route_path LINESTRING;
Autres modes de défaillance
Ce bogue se manifeste également sur les colonnes géométriques où elles ont pu conserver des géométries NULL (mais n'étant pas officiellement NULL). MySQL IS NULL
dirait non null, mais asText( myGeo )
a renvoyé NULL
sous MySQL 5.7 . L'exportation de ceux-ci vers une chaîne dans MySQL 5.6 a renvoyé ''
, chaîne vide. Ainsi le ''
la sortie de géométrie de 5.6 était et une entrée invalide pour 5.7.
Le correctif consistait à les annuler.
-- Convert NULL geometries to actual NULL's
UPDATE myTable SET myGeo = NULL WHERE asText(myGeo) IS NULL;