J'ai des vues matérialisées difficiles à calculer, que je veux pouvoir sauvegarder et restaurer en utilisant les données stockées réelles, et non en recalculant.
Est-ce possible dans PostgreSQL 9.4?
(l'alternative est de créer des tables réelles, mais elles sont plus difficiles à "rafraîchir")
postgresql
materialized-view
pg-dump
Ophir Yoktan
la source
la source
copy
pour créer un vidage en texte brut des données (ou tout autre utilitaire d'exportation). Je ne sais pas comment le restaurer.Réponses:
Pas vraiment. Vous devez vous rappeler que la commande pg_dump crée des instructions CREATE TABLE et INSERT simples, etc. Ainsi, lorsque vous exécutez pg_restore, vous exécutez simplement des instructions CREATE et INSERT sur le serveur et l'insertion des données nécessite une commande "INSERT INTO MATERIALIZED VIEW". Cela n'aurait aucun sens, car obtenir les données par un raccourci mettrait également en danger «l'intégrité» de la vue - vous pourriez insérer des données non valides dans le processus de restauration manuelle que la vue ne retournerait pas autrement. Je doute donc que PostgreSQL supporte jamais la restauration manuelle des données des vues matérialisées directement dans la base de données.
Si vous devez sauvegarder les données réelles, je recommanderais d'utiliser une table au lieu d'une vue matérialisée et d'exécuter des instructions DELETE FROM / INSERT INTO planifiées dans la table.
la source