上传PostgreSQL DB的备份

时间:2017-04-12 05:09:34

标签: sql postgresql

在上传备份数据库期间,我运行命令:

pg_restore 20150401.backup > backup.txt

这给了我以下的警告:

  

pg_restore:[archiver]警告:不知道如何设置对象的所有者   物质化视图

事实上,当备份开始时,materilzed视图不存在。 所以我需要在查询中手动运行它的创建代码。这非常不方便。

我正在运行PostgreSQL 9.3.3

有没有办法解决这个问题?这个问题是在未来的版本中解决的吗?

1 个答案:

答案 0 :(得分:0)

你可以得到查询它的定义,例如:

创建视图

t=# create materialized view so55 as select * from pg_tables where tablename like 'gt%';
SELECT 0

获取ddl:

t=# \pset format unaligned
Output format is unaligned.
t=# select concat('create view ',schemaname,'.',matviewname,' as ',definition) from pg_matviews where matviewname = 'so55';
concat
create view public.so55 as  SELECT pg_tables.schemaname,
    pg_tables.tablename,
    pg_tables.tableowner,
    pg_tables.tablespace,
    pg_tables.hasindexes,
    pg_tables.hasrules,
    pg_tables.hastriggers
   FROM pg_tables
  WHERE (pg_tables.tablename ~~ 'gt%'::text);
(1 row)