(Postgres版本:9.3)
在没有任何解决方案的情况下搜索之后询问:
create
psql my_db -c "CREATE MATERIALIZED VIEW my_view AS (SELECT * FROM my_table);"
pg_dump -Fc my_db
刷新视图。 REFRESH MATERIALIZED VIEW
只要pg_dump处于活动状态,psql my_db -c "REFRESH MATERIALIZED VIEW my_view;"
语句就会挂起(保持“活动状态”)(这会使视图在REFRESH
上挂起时更糟糕,我无法REFRESH
以及)。
我的问题是:如何在执行转储时SELECT
实现视图?
我不介意从转储中排除视图的数据,如果这会有帮助,我不需要保存数据。但我做需要转储视图架构(REFRESH
语句)。
我已经设置了一个脚本来排除转储中的所有m.views,但它也排除了它们的模式,并且它使我的dump命令复杂化到一个不合理的数量只是为了使这个工作,所以我正在寻找一个更简单的解决方案。
提前致谢!
答案 0 :(得分:0)
所以,回答我的问题:)
我移至pg_basebackup
而不是pg_dump
。当然它们不一样,主要是因为前者转储整个服务器数据,但对我来说,无论如何都要快得多,并且在运行时刷新m.views没有问题。