Я думаю, что для PostgreSQL использование базы данных шаблонов быстрее, чем пересоздание всех таблиц по отдельности.
Просто создайте новую базу данных с именем, отличным от того, которое вы обычно используете (например, my_template_db), но со всеми нужными вам таблицами. Вы также можете поместить туда тестовые данные.
Когда вы запустите тест, отбросьте базу данных , которую вы хотите протестировать. Затем заново создайте тест, используя шаблон.
DROP DATABASE my_test_db;
CREATE DATABASE my_test_db WITH TEMPLATE my_template_db;
В 9.0 были некоторые оптимизации, которые ускорили бы это. Так что, возможно, такой подход быстрее, чем пересоздание всех таблиц с помощью SQL.