Tout d'abord, je suis un développeur et non un administrateur de base de données ou un administrateur système; Soyez gentil s'il vous plait :)
Je travaille sur un workflow d’application dans lequel une seule action entraîne des modifications complexes dans la base de données: création de centaines d’enregistrements dans certaines tables, mise à jour de centaines d’enregistrements dans d’autres, etc. Au total, environ 12 tables (sur environ 100) ) sont touchés par cette action. En raison de la complexité de cette tâche, il est très difficile pour moi d’annuler manuellement toutes les modifications avant de pouvoir exécuter un autre test. Pendant la majeure partie de mon temps de développement, je peux simplement insérer une instruction "ROLLBACK" vers la fin du flux de travail, mais lorsque je suis sur le point de valider mes modifications, je dois tester la réalité.
J'ai une copie locale de la base de données de production avec laquelle travailler. Dans mon cas, le dumping et la restauration entre les tests sont plus rapides que l'écriture d'un script pour annuler toutes les modifications. C'est plus rapide, mais cela me ralentit encore beaucoup (la restauration prend environ 20 minutes sur mon ordinateur portable vieillissant). Existe-t-il un moyen de sauvegarder un instantané de l'état actuel de la base de données, puis de le restaurer rapidement?
Je suis assuré d'être le seul utilisateur du système et j'ai un accès root. Le vidage de la base de données fait ~ 100 Mo une fois taré et gzipé. La version de PostgreSQL est 8.3.
Merci d'avance pour toutes idées utiles.