Tengo algunas vistas materializadas difíciles de calcular, que quiero poder hacer una copia de seguridad y restaurar usando los datos almacenados reales, y no mediante la recalculación.
¿Es posible en PostgreSQL 9.4?
(la alternativa es crear tablas reales, pero son más difíciles de "actualizar")
postgresql
materialized-view
pg-dump
Ophir Yoktan
fuente
fuente
copy
para crear un volcado de texto sin formato de los datos (o cualquier otra utilidad de exportación). Sin embargo, no estoy seguro de cómo restaurarlo.Respuestas:
Realmente no. Debe recordar que el comando pg_dump crea sentencias CREATE TABLE e INSERT simples, etc. De manera efectiva, cuando ejecuta pg_restore, solo está ejecutando sentencias CREATE e INSERT en el servidor e insertando los datos requeriría un comando "INSERT INTO MATERIALIZED VIEW". Eso no tendría sentido, ya que obtener los datos mediante un acceso directo también pondría en peligro la "integridad" de la vista: puede insertar datos no válidos en el proceso de restauración manual que de lo contrario la vista no devolvería. Así que dudo que PostgreSQL alguna vez admita la restauración manual de datos de vistas materializadas directamente en la base de datos.
Si necesita hacer una copia de seguridad de los datos reales, recomendaría usar una tabla en lugar de una vista materializada y ejecutar una declaración DELETE FROM / INSERT INTO programada en la tabla.
fuente