Sembra MySQL 5.7
è più severo nei tipi Geometry rispetto a MySQL 5.6
. Pertanto, dati che erano validi in 5.6 ora è non valido in 5.7 .
Questa è stata la soluzione a MySQL Bug #76337 , nella versione MySQL 5.7.8 .
In questo caso, un LINESTRING
veniva memorizzato in una colonna di tipo POINT
. Questo ha funzionato per quasi un decennio, ma non di più. Modifica della colonna per digitare LINESTRING
corretto l'errore di caricamento sopra.
-- The Fix - run on MySQL 5.6 database before Upgrade/Export
ALTER TABLE routes MODIFY COLUMN route_path LINESTRING;
Altre modalità di errore
Questo bug si manifesta anche su colonne geometriche dove erano in grado di persistere le geometrie NULL (ma non essendo ufficialmente NULL). MySQL IS NULL
direi non null, ma asText( myGeo )
restituito NULL
in MySQL 5.7 . L'esportazione di questi in una stringa in MySQL 5.6 ha restituito ''
, stringa vuota. Quindi il ''
l'output della geometria da 5.6 era e input non valido per 5.7.
La soluzione era annullarli.
-- Convert NULL geometries to actual NULL's
UPDATE myTable SET myGeo = NULL WHERE asText(myGeo) IS NULL;