pg dump输出模式名称和数据

时间:2015-10-26 03:28:47

标签: postgresql database-backups pgadmin pg-dump

当我使用(pg_dump -f backup.sql mydb)时,不包括模式名称。如何转储将输出方案名称(个人)。见下面的例子

输出:ALTER TYPE basicinfo OWNER TO postgres; //注意:basicinfo是表的名称

预期输出:ALTER TYPE personal.basicinfo OWNER TO postgres;

任何想法?

2 个答案:

答案 0 :(得分:3)

全局数据库属性(如OWNER等)始终在pg_dump输出中以SCHEMA名称给出。

但是,对于非全局数据库对象,据我所知,没有任何方法可以将SCHEMA名称添加到所有数据库对象之前。脚本的工作方式是它设置SET search_path之前所有特定于Schema的数据库对象......这样做效率更高,效果相同。

如果您尝试解析pg_dump输出以提取独立工作的给定SQL行,您可能还必须解析最近的SET search_path行并在执行目标行之前执行该行(例如, ALTER TYPE)以达到预期的效果。

答案 1 :(得分:0)

你不能直接使用pg_dump。 尝试使用不同的工具,它们具有不同的导出PostgreSQL数据库的实现。

以下是工具清单:

  1. phpPgAdmin - http://sourceforge.net/projects/phppgadmin

  2. AnySQL Maestro - http://www.sqlmaestro.com/products/anysql/maestro/

  3. DBeaver - http://dbeaver.jkiss.org/

  4. 所有戒备:https://wiki.postgresql.org/wiki/Community_Guide_to_PostgreSQL_GUI_Tools