Wygląda jak MySQL 5.7
jest bardziej rygorystyczny w typach geometrii niż MySQL 5.6
. W związku z tym dane, które były prawidłowe w 5.6 jest teraz nieprawidłowy w 5.7 .
To była poprawka Błąd MySQL #76337 , w wydaniu MySQL 5.7.8 .
W tym przypadku LINESTRING
był przechowywany w kolumnie typu POINT
. Działało to przez prawie dekadę, ale nie więcej. Zmiana kolumny na LINESTRING
naprawiono powyższy błąd ładowania.
-- The Fix - run on MySQL 5.6 database before Upgrade/Export
ALTER TABLE routes MODIFY COLUMN route_path LINESTRING;
Inne tryby awarii
Ten błąd pojawia się również w kolumnach geometrycznych, w których były w stanie zachować geometrie NULL (ale oficjalnie nie są NULL). MySQL IS NULL
powie nie null, ale asText( myGeo )
zwrócono NULL
pod MySQL 5.7 . Wyeksportowanie ich do ciągu w MySQL 5.6 zwróciło ''
, pusta struna. Zatem ''
dane wyjściowe geometrii z 5.6 były i nieprawidłowe dane wejściowe dla 5.7.
Rozwiązaniem było ich zerowanie.
-- Convert NULL geometries to actual NULL's
UPDATE myTable SET myGeo = NULL WHERE asText(myGeo) IS NULL;