Зараз я переношу свою базу даних MySQL на PostgreSQL. Майже все пішло нормально (ну, після безлічі гуглів за правильними параграфами mysqldump тощо), за винятком однієї таблиці, яка є у мене - насправді найважливіша таблиця в моєму додатку.
Структура столу дуже проста:
mysql> show create table samples;
.. skipped ...
CREATE TABLE `samples` (
`File_ID` int(11) NOT NULL,
`File` longblob,
PRIMARY KEY (`File_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=binary
але він дуже великий (> 20 Gb).
Я намагався використовувати параметр --hex-blob mysqldump - але дані в такому форматі PostgreSQL не приймають, коли я намагався використовувати отриманий dumpfile як командний файл. Інший варіант, який я спробував, - використовує --tab варіант, щоб просто отримати дамп, а потім вставити його в PostgreSQL з командою COPY - але - hex-blob не працює з --tab, а PostgreSQL все ще не приймає dumpfile, що говорить там є недійсними символами в ньому.
Буду дуже радий отримати будь-яку пораду з цього приводу - хоча я починаю вважати, що написання користувальницького інструменту міграції не є поганою ідеєю ...