介绍:
具有数百个存储功能的 PostgreSQL 数据库,包括过时的、未使用的等。
问题
我需要找出与表 X 有任何关系的所有存储函数——因为我想更改表结构。其中一些可能没有使用,所以我不能仅仅通过查看代码来做到这一点。
我有 ATM 的解决方案是运行 psql\df+
和 grepping 输出,但我更喜欢类似数据库的解决方案,即使用信息模式。这肯定是一项重复性的任务,我希望它干净整洁。
有什么建议么?
介绍:
具有数百个存储功能的 PostgreSQL 数据库,包括过时的、未使用的等。
问题
我需要找出与表 X 有任何关系的所有存储函数——因为我想更改表结构。其中一些可能没有使用,所以我不能仅仅通过查看代码来做到这一点。
我有 ATM 的解决方案是运行 psql\df+
和 grepping 输出,但我更喜欢类似数据库的解决方案,即使用信息模式。这肯定是一项重复性的任务,我希望它干净整洁。
有什么建议么?
我现在正在将我的 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)。
我尝试使用 mysqldump 的 --hex-blob 参数 - 但是当我尝试将生成的转储文件用作命令文件时,PostgreSQL 不接受这种格式的数据。我尝试过的另一个选项是使用 --tab 选项来获取转储,然后使用 COPY 命令将其插入到 PostgreSQL - 但是 --hex-blob 不能使用 --tab 并且 PostgreSQL 仍然不接受转储文件说那里是其中的无效字符。
我很乐意就此事获得任何建议 - 尽管我开始认为编写自定义迁移工具毕竟不是一个坏主意......