Se parece a MySQL 5.7
es más estricto en tipos de geometría que MySQL 5.6
. Como tal, los datos que eran válidos en 5.6 ahora no es válido en 5.7 .
Esta fue la solución al Error de MySQL #76337 , en la versión MySQL 5.7.8 .
En este caso, un LINESTRING
se estaba almacenando en una columna de tipo POINT
. Esto funcionó durante casi una década, pero no más. Cambiar la columna para escribir LINESTRING
corrigió el error de carga anterior.
-- The Fix - run on MySQL 5.6 database before Upgrade/Export
ALTER TABLE routes MODIFY COLUMN route_path LINESTRING;
Otros modos de falla
Este error también se manifiesta en columnas geométricas donde pudieron persistir geometrías NULL (pero no siendo oficialmente NULL). MySQL IS NULL
diría no nulo, pero asText( myGeo )
devolvió NULL
bajo MySQL 5.7 . Exportarlos a una cadena en MySQL 5.6 devolvió ''
, cuerda vacía. Así el ''
la salida de geometría de 5.6 era una entrada no válida para 5.7.
La solución fue anularlos.
-- Convert NULL geometries to actual NULL's
UPDATE myTable SET myGeo = NULL WHERE asText(myGeo) IS NULL;