MySQL 5.7
のように見えます ジオメトリタイプでは、MySQL 5.6
よりも厳密です 。そのため、有効だったデータ 5.6では5.7では無効になりました 。
これは、 MySQL Bug#76337 の修正でした。 、リリースでは MySQL 5.7.8 。
この場合、LINESTRING
タイプPOINT
の列に格納されていました 。これはほぼ10年間機能しましたが、それ以上は機能しませんでした。列を「LINESTRING
」と入力するように変更します 上記の読み込みエラーを修正しました。
-- The Fix - run on MySQL 5.6 database before Upgrade/Export
ALTER TABLE routes MODIFY COLUMN route_path LINESTRING;
その他の障害モード
このバグは、NULLジオメトリを永続化できた(ただし、正式にはNULLではない)ジオメトリ列にも現れます。 MySQL IS NULL
nullではなく、asText( myGeo )
返されたNULL
MySQL 5.7の下 。これらをMySQL5.6の文字列にエクスポートすると、''
が返されました 、空の文字列。したがって、''
5.6からのジオメトリ出力は5.7の無効な入力でした。
修正はこれらを無効にすることでした。
-- Convert NULL geometries to actual NULL's
UPDATE myTable SET myGeo = NULL WHERE asText(myGeo) IS NULL;