ऐसा लगता है MySQL 5.7
MySQL 5.6
. की तुलना में ज्यामिति प्रकारों में अधिक सख्त है . जैसे, डेटा जो वैध था 5.6 में अब 5.7 में अमान्य . है ।
यह MySQL Bug #76337 का समाधान था। , रिलीज में MySQL 5.7.8 ।
इस मामले में, एक LINESTRING
POINT
. प्रकार के कॉलम में संग्रहीत किया जा रहा था . इसने लगभग एक दशक तक काम किया, लेकिन अब और नहीं। 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
शून्य नहीं कहेंगे, लेकिन asText( myGeo )
लौटा NULL
MySQL 5.7 . के अंतर्गत . इन्हें MySQL 5.6 में एक स्ट्रिंग में निर्यात करना ''
. लौटा , खाली स्ट्रिंग। इस प्रकार ''
5.6 से ज्यामिति आउटपुट था और 5.7 के लिए अमान्य इनपुट।
इन्हें समाप्त करने के लिए सुधार किया गया था।
-- Convert NULL geometries to actual NULL's
UPDATE myTable SET myGeo = NULL WHERE asText(myGeo) IS NULL;