我想将我的所有数据移到我的' test1'所有表上的架构,其中id> 5000
所以,我确实导出了' test1' 架构并创建了新的临时架构名称' test1_new' 然后我这样做了所有表
INSERT INTO test1_new.{table_name} SELECT * FROM test1.{table_name}
然后我想要的所有数据都被移到' test1_new'然后我重命名了他们
test1 --- to ----> test1_old
test1_new --- to ----> TEST1
然后我做
pg_dump -a -f test1.data -F c -n test1 -v -U myuser mydatabase
所以,我得到 test1.data ,其中包含我要移动的所有数据
然后我使用 pg_restore
移动到我的主数据库pg_restore -a --host=192.168.1.2 --port=4444 --username=myuser --password --dbname=mydatabase --role=myuser -c /mnt/databackup/test1.data
我收到了这个错误
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 94497; 0 164460306 TABLE DATA assign_suggestions sodb
pg_restore: [archiver (db)] COPY failed for table "assign_suggestions": ERROR: duplicate key value violates unique constraint "assign_suggestions_pkey"
DETAIL: Key (id)=(16404) already exists.
CONTEXT: COPY assign_suggestions, line 1
pg_restore: [archiver (db)] Error from TOC entry 94503; 0 164460330 TABLE DATA assigns sodb
pg_restore: [archiver (db)] COPY failed for table "assigns": ERROR: duplicate key value violates unique constraint "assigns_pkey"
DETAIL: Key (id)=(16664) already exists.
CONTEXT: COPY assigns, line 1
和很多这样的
我做错了什么?在我的主数据库中已有一些记录,但我确定该ID不重复。
我该如何解决这个问题?我也试过创建一个没有约束的克隆模式,但是当我尝试pg_restore时我仍然遇到这样的错误..我不知道会发生什么......
无论如何,我可以在架构中的所有表上移动我的数据,条件是id> 5000到我的主要使用数据库?
答案 0 :(得分:0)
而不是:
pg_restore -a --host=192.168.1.2 --port=4444 --username=myuser --password -- dbname=mydatabase --role=myuser -c /mnt/databackup/test1.data
使用:
pg_restore -a --host=192.168.1.2 --port=4444 --username=myuser --password -- dbname=mydatabase --role=myuser -c /mnt/databackup/test1.data --schema=*YOUR TARGET SCHEMA NAME*