Sepertinya MySQL 5.7
lebih ketat dalam jenis Geometri daripada MySQL 5.6
. Dengan demikian, data yang valid di 5.6 sekarang tidak valid di 5.7 .
Ini adalah perbaikan untuk MySQL Bug #76337 , dalam rilis MySQL 5.7.8 .
Dalam hal ini, sebuah LINESTRING
sedang disimpan di kolom tipe POINT
. Ini bekerja selama hampir satu dekade, tetapi tidak lebih. Mengubah kolom untuk mengetik LINESTRING
memperbaiki kesalahan pemuatan di atas.
-- The Fix - run on MySQL 5.6 database before Upgrade/Export
ALTER TABLE routes MODIFY COLUMN route_path LINESTRING;
Mode Kegagalan Lainnya
Bug ini juga bermanifestasi pada kolom geometris di mana mereka dapat mempertahankan geometri NULL (tetapi tidak secara resmi NULL). MySQL IS NULL
akan mengatakan bukan nol, tetapi asText( myGeo )
mengembalikan NULL
di bawah MySQL 5.7 . Mengekspor ini ke string di MySQL 5.6 mengembalikan ''
, string kosong. Jadi ''
keluaran geometri dari 5.6 adalah dan masukan tidak valid untuk 5.7.
Cara mengatasinya adalah dengan menghapus ini.
-- Convert NULL geometries to actual NULL's
UPDATE myTable SET myGeo = NULL WHERE asText(myGeo) IS NULL;