我正在尝试编写一个pg_restore
命令来仅将某些表(及其数据)恢复到我的数据库中。
注意:描述的每个命令都以我删除并重新创建数据库开始并以:(-v -x -O -j 8 -h localhost -U username -d database file.dump
出于好奇,我不想使用--clean
,因为转储来自的数据库具有不同的名称。)
由于pg_restore
对我来说很好(使用上述参数),我查看了pg_restore
文档,并尝试了这样的事情:
pg_restore -t table1 -t table2 ...
(我以这种方式指定了 121 个表)。
但是,我收到如下错误:
pg_restore: creating TABLE people
pg_restore: [archiver (db)] Error from TOC entry 123; 1234 12345 TABLE people dumped_table_username
pg_restore: [archiver (db)] could not execute query: ERROR: type "hstore" does not exist
LINE 14: extra_data hstore,
^
Command was: CREATE TABLE people (
id integer NOT NULL,
name string,
age integer,
date_of_birt...
我不明白为什么只有在设置-t
标志时才会出现问题,但它似乎是。
这是怎么回事?
编辑:看起来这是由于 hstore 而导致表失败的 pg_restore 的副本,这是最近被问到的,到目前为止还没有接受的答案。