当我使用(pg_dump -f backup.sql mydb)时,不包括模式名称。如何转储将输出方案名称(个人)。见下面的例子
输出:ALTER TYPE basicinfo OWNER TO postgres;
//注意:basicinfo是表的名称
预期输出:ALTER TYPE personal.basicinfo OWNER TO postgres;
任何想法?
答案 0 :(得分:3)
全局数据库属性(如OWNER等)始终在pg_dump输出中以SCHEMA名称给出。
但是,对于非全局数据库对象,据我所知,没有任何方法可以将SCHEMA
名称添加到所有数据库对象之前。脚本的工作方式是它设置SET search_path
之前所有特定于Schema的数据库对象......这样做效率更高,效果相同。
如果您尝试解析pg_dump输出以提取独立工作的给定SQL行,您可能还必须解析最近的SET search_path
行并在执行目标行之前执行该行(例如, ALTER TYPE
)以达到预期的效果。
答案 1 :(得分:0)
你不能直接使用pg_dump。 尝试使用不同的工具,它们具有不同的导出PostgreSQL数据库的实现。
以下是工具清单:
phpPgAdmin - http://sourceforge.net/projects/phppgadmin
AnySQL Maestro - http://www.sqlmaestro.com/products/anysql/maestro/
DBeaver - http://dbeaver.jkiss.org/
所有戒备:https://wiki.postgresql.org/wiki/Community_Guide_to_PostgreSQL_GUI_Tools