On Thu, 2009-06-25 at 21:59 +0100, Greg Stark wrote:
> >> The transaction itself works flawlessly, but every once and awhile the data
> >> the it uploads from comes in flawed and we have to find a way to reset it.
>
> If you can automate the tests for the flaws you can do the whole
> transaction itself as one big transaction in Postgres. Even DDL can be
> done in transactions in Postgres. Then run the tests, still in the
> same transaction, and if you detect anything wrong roll the whole
> shebang back.
>
We automate dozens of tests for the data, very first thing all in one
large transaction. We love the fact that it undoes DDL and have taken
full advantage of it. But we get "these stats don't look right" and then
go look at the import and find out that the context of the data was
incorrect. I can't imagine how to write the tests for the stuff we find
wrong. If anybody has an extra AI system laying around, let me know ;).