Tôi hiện đang trong quá trình di chuyển cơ sở dữ liệu MySQL của mình sang PostgreSQL. Hầu như mọi thứ đều ổn (tốt, sau rất nhiều lần tìm kiếm thông số mysqldump chính xác, v.v.) ngoại trừ một bảng tôi có - thực sự là bảng quan trọng nhất trong ứng dụng của tôi.
Cấu trúc bảng rất đơn giản:
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
nhưng nó rất lớn (> 20 Gb).
Tôi đã thử sử dụng tham số --hex-blob của mysqldump - nhưng dữ liệu ở định dạng này không được PostgreQuery chấp nhận khi tôi cố gắng sử dụng kết quả dumpfile làm tệp lệnh. Một tùy chọn khác mà tôi đã thử là sử dụng tùy chọn --tab để chỉ nhận một kết xuất và sau đó chèn nó vào PostgreQuery bằng lệnh COPY - nhưng --hex-blob không hoạt động với --tab và PostgreQuery vẫn không chấp nhận kết xuất tại đó là những ký tự không hợp lệ trong đó.
Tôi rất vui mừng khi nhận được bất kỳ lời khuyên nào về vấn đề này - mặc dù tôi bắt đầu nghĩ rằng viết một công cụ di chuyển tùy chỉnh không phải là một ý tưởng tồi sau tất cả ...