将postgres转储还原到现有数据库

时间:2019-08-07 16:03:30

标签: database postgresql pg-dump

我有一个postgres数据库,我想备份到文件并就地还原。我已经使用pg_dump命令将数据库转储到文件中,并且我想从转储中覆盖和还原数据库。运行psql -U my_user my_db < my_dump.sql会输出许多有关已存在项目的错误,例如:

SET
SET
SET
SET
SET
 set_config 
------------

(1 row)

SET
SET
SET
SET
CREATE EXTENSION
COMMENT
CREATE EXTENSION
COMMENT
SET
SET
ERROR:  relation "attr" already exists
ALTER TABLE
ERROR:  relation "attr_id_seq" already exists
ALTER TABLE
ALTER SEQUENCE
ERROR:  relation "grid" already exists
ALTER TABLE
ERROR:  relation "grid_id_seq" already exists
ALTER TABLE
ALTER SEQUENCE
ERROR:  relation "layer" already exists
ALTER TABLE
ERROR:  relation "meta" already exists
ALTER TABLE
ERROR:  relation "meta_id_seq" already exists
ALTER TABLE
ALTER SEQUENCE
ERROR:  relation "object" already exists
ALTER TABLE
ERROR:  relation "object_id_seq" already exists
ALTER TABLE
ALTER SEQUENCE
ALTER TABLE
ALTER TABLE
ALTER TABLE
ALTER TABLE
COPY 0
COPY 0
ERROR:  duplicate key value violates unique constraint "layer_pkey"
DETAIL:  Key (id)=(0) already exists.
CONTEXT:  COPY layer, line 1
COPY 0
COPY 0
COPY 0
 setval 
--------
      1
(1 row)

 setval 
--------
      1
(1 row)

 setval 
--------
      1
(1 row)

 setval 
--------
      1
(1 row)

ERROR:  relation "attr_grid_id_layer_id_key" already exists
ERROR:  multiple primary keys for table "attr" are not allowed
ERROR:  relation "grid_i_j_key" already exists
ERROR:  multiple primary keys for table "grid" are not allowed
ERROR:  multiple primary keys for table "layer" are not allowed
ERROR:  multiple primary keys for table "meta" are not allowed
ERROR:  multiple primary keys for table "object" are not allowed
ERROR:  constraint "attr_grid_id_fkey" for relation "attr" already exists

有什么方法可以从现有数据库之上的转储中还原,还是必须创建一个干净的新数据库?

0 个答案:

没有答案