在开发期间回滚一定数量的交易?

时间:2011-01-25 15:39:38

标签: database sql-server-2008 testing transactions

是否有任何工具可以透明地监视数据库事务并允许批量回滚?类似于DBunit提供的东西,但不是在单元测试的情况下,而是在稍长的时间内(例如,持续5-10分钟的测试,在UI中完成,而不是在自动测试中)

赞:开发人员集成了一项新功能并以交互方式对其进行测试。 10分钟后,数据搞砸了,他想回到数据库的安全状态。

备份/快照不适用于此处,因为数据库非常大并且返回备份/快照非常耗时。因此,首选更轻量级的东西。

顺便说一下,使用的是Windows SQL Server 2008 Standard,因此我们根本无法使用快照。应用程序的技术堆栈是Java / JPA / Hibernate。

谢谢!

1 个答案:

答案 0 :(得分:0)

我不知道有什么可用来实现你所描述的。您必须在与数据库的连接上管理自己的事务。

您可以在测试开始时启动事务,然后在结束时将其回滚,但这会产生锁定表的副作用,从而阻止其他人使用数据库。

您可能希望查看使用加载了测试数据的SQLite数据库,然后使用“扔掉”。它的测试速度非常快。