Привет! Подскажите как правильно экспортировать\импортировать тип данных point Вот таблица mysql

Ver 15.1 Distrib 10.7.4-MariaDB, for Linux (x86_64) using readline 5.1

CREATE TABLE `city` (
`id` int(11) NOT NULL,
`city_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`region_name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`country_iso` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`latlng` point NOT NULL,
PRIMARY KEY (`id`),
KEY `city_name_idx` (`city_name`),
SPATIAL KEY `sp_index` (`latlng`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

экспортирую командой mysqldump с ключом --hex-blob на выходе получаю такой результат

INSERT INTO `city` VALUES
(5,'Усинск','Коми респ.','RUS',0x000000000101000000083DEFBFBD55EFBFBD7F5040EFBFBDEFBFBDEFBFBD4BEFBFBD4C40);

Экспортирую в mysql Ver 8.0.34 for Linux on x86_64 (MySQL Community Server - GPL)

получаю ошибку
Error in query (1416): Cannot get geometry object from data you send to the GEOMETRY field

Как с этим бороться?

16 ответов

28 просмотров
Иван- Автор вопроса

а как дамп такой сделать? )

Иван
а как дамп такой сделать? )

насколько я вижу у 8 версии с дампом таких данных проблем быть не должно при использовании --hex-blob

Иван- Автор вопроса
Vitaly Larin
насколько я вижу у 8 версии с дампом таких данных ...

ну я эе скинул пример дампа с опцией этой выше

Иван- Автор вопроса

даже если я напишу скрипт, который исправит '0x000000000101000000083DEFBFBD55EFBFBD7F5040EFBFBDEFBFBDEFBFBD4BEFBFBD4C40' в ST_GeomFromWKB(X'000000000101000000083DEFBFBD55EFBFBD7F5040EFBFBDEFBFBDEFBFBD4BEFBFBD4C40') то это не поможет так как хешь генерируется не для этой функции ST_GeomFromWKB Error in query (3037): Invalid GIS data provided to function st_geomfromwkb.

Иван
даже если я напишу скрипт, который исправит '0x000...

ваша проблема похожа на баг https://bugs.mysql.com/bug.php?id=43544

Вот тут в чём ошибка ?

Иван- Автор вопроса
Ilya Zviagin
Вот тут в чём ошибка ?

Error in query (1416): Cannot get geometry object from data you send to the GEOMETRY field

Иван
Error in query (1416): Cannot get geometry object ...

Ну твоя ошибка в том, что ты дамп из Марии загружаешь в ванильный MySQL - это родственные, но всё же разные СУБД.

Иван- Автор вопроса
Иван
Можешь подсказать пути решения?)

Тебе надо 0) проверить, что MySQL 8 поддерживает те же самые типы POINT . что и Мария 1) выгрузить из Марии данные POINT в виде WKT https://mariadb.com/kb/en/wkt/ 2) загрузить в MySQL данные POINT в виде WKT - https://dev.mysql.com/doc/refman/8.0/en/gis-data-formats.html#gis-wkt-format

Иван
Спасибо

Вроде как смотрю по доке, и --hex-blog не должно влиять на Spatial data types Попробуй убери его и сделай пробный дамп. Если не будет WKT , то не знаю как ещё делать. По документации, похоже, Spatial data не поддерживаются maria-dump-ом. Тогда можно сделать view на каждую таблицу с Spatial data и в нём каждое поле с POINT преобразовать в WKT и дампить уже его. Заморочно, но работать будет

Иван- Автор вопроса
Ilya Zviagin
Вроде как смотрю по доке, и --hex-blog не должно в...

я пробовал без —hex-blob вот такое отдает '\0\0\0\0 \0\0\0 =�U�P@���K�L@' попробую через view, спасибо!

Иван
я пробовал без —hex-blob вот такое отдает '\0\0\0\...

А с чего вообще идея переносить БД именно в MySQL ?

Ну это плохо, потому что оно может не будет работать, а отвечать - тебе

Иван- Автор вопроса
Ilya Zviagin
Ну это плохо, потому что оно может не будет работа...

я пока просто смотрю на локалке что может пойти не так ) спасибо за предупреждение

Похожие вопросы

Обсуждают сегодня

Всем привет, Добавил в плагин определение user agent public function registerMarkupTags() { return [ 'filters' => [ 'staticPage' => ['RainLab\Pages\Cl...
John Norton Kruger
3
Я колись ставив гуглу антиспам 3.0, може і норм, але мені не дуже зайшло. Теж думав тиждень, що його і куди. Зупинився на трех варіантах відразу всі три і включив 1. Перевір...
𝓔𝓾𝓰𝓮𝓷𝓮𝓥 J
2
Добрый день , слышали про то что XML схемы https://schemas.xmlsoap.org/soap/envelope/ перестали работать со поза-вчера. А домен https://schemas.xmlsoap.org/ , отвечает 404 оши...
Max Dubovsky
3
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Портфолио: Зовут меня Александр, мне 41 год. Город Киров. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github.co...
Magic
11
где собака, админ группы? нычкуется и боится проявить волю, в толерантность еще не наигрался? @yelizariev
Ognezar
61
Приветствую всех, возникла проблема, до этого писал бота в простом формате где при выполнении условий приходило через send_message информация, сейчас решил добавить хендлер на...
Andrew
4
Приветствую всех, есть вопросик. Передали проект на OctoberCms, без инсталяшки в полуразвернутом виде, нужно было залить бекап бд, после залития бд, оказалось, что части строк...
Лео
14
Ребят, привет. У кого-то есть опыт заказа мерча в сторе? Есть успешные кейсы? Чёт у меня турецкую карту не принимает
Vladimir F.
7
Всем привет, может уже кто-то пытался выдернуть из api информацию о дате рождения пользователя Есть ли вообще такая возможность?
Artem Stormageddon
2
Карта сайта