簡體   English   中英

使用 pg_restore 恢復表不包括主鍵或索引

[英]restoring table with pg_restore does not include primary key or indexes

所以我使用 pg_dump 備份了一張表:

pg_dump -U bob -F c -d commerce -t orders > orders.dump

該表有幾個列出的索引,例如主鍵

但是,當我使用 pg_restore 將此表恢復到另一個系統上的開發數據庫時:

pg_restore -U bob -d commerce -t orders > orders.dump

未列出主鍵或索引

我做錯了什么?

你沒有做錯任何事,不幸的是pg_restore -t只恢復表,沒有別的,不管你如何創建轉儲以及轉儲本身內部是什么。 這已經在V12 PostgreSQL docs 中以某種方式澄清,指出:

此標志的行為與 pg_dump 的 -t 標志不同。 目前在 pg_restore 中沒有任何通配符匹配的規定,你也不能在它的 -t 中包含模式名稱。 而且,雖然 pg_dump 的 -t 標志也會轉儲所選表的附屬對象(例如索引),但 pg_restore 的 -t 標志不包括此類附屬對象。

確保恢復表將攜帶所有索引的唯一方法是按名稱尋址它們,例如:

pg_restore -U bob -d commerce -t orders -I index1 -I index2 -I index3 > orders.dump

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM