Problem that looks like it will be coming up soon... you are always wanting to be able to test your code against a (huge, PostgreSQL) LIVE DB before you release/promote the code. Loading a DB dump can take hours. Your test code can't all just run in a single transaction.
First approach: run the DB server in a virtual machine, sync the LIVE DB down to the virtual machine, snapshot just before you run tests, throw away the snapshot.
Second approach: run the DB server on real hardware, sync the LIVE DB down to a *template* DB on the real hardware, drop the database and recreate based on the template (note: you have to stop the sync before you create the new db). In my spike test the create-from-template approach still takes a few minutes, but it's *far* faster than loading an SQL dump.
create database moo with template moo_template;
Both approaches, of course, require a DB sync operation... that's the part I still need to research.