web-dev-qa-db-fra.com

Est-il possible de sauvegarder et de restaurer une vue matérialisée avec ses données?

J'ai du mal à calculer des vues matérialisées, que je souhaite pouvoir sauvegarder et restaurer en utilisant les données stockées réelles, et non par recalcultation.

Est-il possible dans PostgreSQL 9.4?

(L'alternative consiste à créer des tables réelles, mais elles sont plus difficiles à "rafraîchir")

10
Ophir Yoktan

Pas vraiment. Vous devez vous rappeler que la commande pg_dump crée une table simple créer et insérer des instructions, etc. de manière efficace lors de l'exécution de pg_restore, vous venez d'exécuter des instructions Créer et insérer des instructions sur le serveur et l'insertion des données nécessiterait une "insertion dans la vue matérialisée" -Command. Cela n'aurait pas de sens que l'obtention des données par un raccourcierait également la "intégrité" de la vue - vous pouvez insérer des données non valides sur le processus de restauration manuelle que la vue ne renverrait pas autrement. Je doute donc que PostgreSQL prendrait en charge la restauration manuelle des données de vues matérialisées directement dans la base de données.

Si vous avez besoin de sauvegarder les données réelles, je vous recommanderais d'utiliser une table au lieu de la vue matérialisée et d'exécuter une suppression programmée de/insérer dans des instructions à la table.

8
Simo Kivistö