Vypadá to jako MySQL 5.7
je v typech geometrie přísnější než MySQL 5.6
. Data, která byla platná v 5.6 je nyní neplatný v 5.7 .
Toto byla oprava chyby MySQL #76337 , ve verzi MySQL 5.7.8 .
V tomto případě LINESTRING
byl ukládán do sloupce typu POINT
. To fungovalo téměř deset let, ale ne více. Změna sloupce na typ LINESTRING
opravena výše uvedená chyba načítání.
-- The Fix - run on MySQL 5.6 database before Upgrade/Export
ALTER TABLE routes MODIFY COLUMN route_path LINESTRING;
Další režimy selhání
Tato chyba se také projevuje na geometrických sloupcích, kde byly schopny přetrvávat NULL geometrie (ale oficiálně nejsou NULL). MySQL IS NULL
řekl bych ne null, ale asText( myGeo )
vrátil NULL
pod MySQL 5.7 . Export do řetězce v MySQL 5.6 vrátil ''
, prázdný řetězec. Tedy ''
výstup geometrie z 5.6 byl a neplatný vstup pro 5.7.
Opravou bylo jejich zrušení.
-- Convert NULL geometries to actual NULL's
UPDATE myTable SET myGeo = NULL WHERE asText(myGeo) IS NULL;