PostgreSQL - pg_dump 时刷新具体化视图

PostgreSQL - REFRESH MATERIALIZED VIEW while pg_dump

(Postgres 版本:9.3)

四处寻找无解才问:

psql my_db -c "CREATE MATERIALIZED VIEW my_view AS (SELECT * FROM my_table);"

pg_dump -Fc my_db

psql my_db -c "REFRESH MATERIALIZED VIEW my_view;"

只要 pg_dump 处于活动状态,REFRESH 语句就会挂起(保持 'active')(这让事情变得更糟,因为视图挂在 REFRESH,我也不能 SELECT 从它)。 我的问题是:如何在执行转储时 REFRESH 实体化视图?

如果有帮助,我不介意从转储中排除视图数据,我不需要保存数据。但是我确实需要转储视图模式(CREATE语句)。

我已经设置了一个脚本来从转储中排除所有 m.views,但它也排除了它们的模式,并且它使我的转储命令复杂化到不合理的数量只是为了使这项工作,所以我'我正在寻找更简单的解决方案。

提前致谢!

所以,回答我的问题:)

我搬到了 pg_basebackup 而不是 pg_dump。当然它们是不一样的,主要是因为前者会转储整个服务器数据,但对我来说有用,无论如何要快得多,并且刷新 m.views 没问题,而它是 运行.