我现在正在将我的 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
Run Code Online (Sandbox Code Playgroud)
但它非常大(> 20 Gb)。
我尝试使用 mysqldump 的 --hex-blob 参数 - 但是当我尝试将结果转储文件用作命令文件时,PostgreSQL 不接受这种格式的数据。我尝试过的另一个选项是使用 --tab 选项来获取转储,然后使用 COPY 命令将其插入到 PostgreSQL - 但是 --hex-blob 不能使用 --tab 并且 PostgreSQL 仍然不接受转储文件说那里是其中的无效字符。
我很乐意就此事获得任何建议 - 尽管我开始认为编写自定义迁移工具毕竟不是一个坏主意......