Search Postgresql Archives

Solution for rolling back many transactions?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The most cumbersome part of our many (hundreds) of unit tests that verify our data access is working, is creating and then deleting all of the test data. Currently, we're doing it at a pretty high level using java and our ORM (hibernate). It occurred to me that I can probably speed the deletion up by implementing a stored procedure to help do the cleanup. This way we don't pay the penalty for a lot of object construction and individually-issued delete statements.. This might help, but half way through writing it I wondered if there's an even easier solution...

What I want is to be able to roll the state of the database back to the way it was when the test began. Essentially, I want the same behavior I'd get if I backed the database up and then re-imported it afterward.. Only I need the process to add very little overhead (less than a second).

Are there any creative ways to accomplish this? I figured I'd ask the list before trudging forward with my still-not-optimal stored procedure.

In case it's useful information, the test database is pretty small... Maybe 15 or 20 megs. The unit tests are individually pretty small.. Less than 100 inserts each, for sure... So there's not that much to 'roll back'.. As far as using transactions to undo the state of the database, let me know if that's possible.. All of our tests have their own transaction boundaries that they're applying. I don't want to undo that, but certainly if I could nest each test in a longer- running tx and then roll it back.. that could work.

Thanks in advance.

Phill


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux