的PostgreSQL数据库
问题描述:
在备份数据库上传的上传备份我运行命令:的PostgreSQL数据库
pg_restore 20150401.backup > backup.txt
这给了我以下warrning:
pg_restore的:[归档]警告:不要知道如何设置对象 所有者物化视图
事实上,当备份了materilzed视图不存在。 所以我需要在查询manualy中运行它的创建代码。这非常不方便。
我乳宁的PostgreSQL 9.3.3
有没有办法解决这个问题?在未来的版本中解决了这个问题吗?
答
你可以定义查询它,例如:
创建视图:
t=# create materialized view so55 as select * from pg_tables where tablename like 'gt%';
SELECT 0
GET 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)
+0
我已经保存了defintion我可以运行它manualy,我只是问是否有解决方案事实上它不会自动发生。我试图避免手动查询 – Tov3
+0
啊 - 对不起。用“任何解决方案”错误地“解决问题” –
有9.3.5 bug修复与pg_dump和物化视图有关。目前9.3。补丁版本是9.3.16 - 你应该真的升级。那么问题可能会消失。 –
@a_horse_with_no_name请参阅http://stackoverflow.com/questions/43363051/how-to-upgrate-minor-release-in-postgresql?noredirect=1#comment73789137_43363051我试图找到如何执行更新,但没有如何做到这一点的指南.. – Tov3
不知道除了“替换可执行文件”之外,还需要其他什么。使用您在操作系统中使用的任何安装程序/软件包管理器来安装新的二进制文件。这没有什么魔力。 –