我正在寻找某种解决方案,可以单击“打开交易”按钮,从现在开始,对数据库所做的一切都存储在内存中。完成后,我可以点击“还原”或“提交”。
我们真的很难测试。为了测试单个动作,我们必须准备大量数据,并且恢复该动作真的很难或不可能。 我要实现的是测试解决方案/操作/测试方案并在完成后返回数据库的功能。
很明显,我不是在谈论与BEGIN;
COMMIT;
和ROLLBACK;
答案 0 :(得分:1)
我们在谈论多少测试数据?我可能想到的一件事:
创建一个包含测试数据的数据库。
create database base_test
owner = ....
is_template = true;
然后在base_test
中创建所需的任何内容。
开始测试时,请使用以下命令克隆该数据库:
create database test_db
template = base_test
owner = ...;
然后在test_db
上运行测试。
测试完成后,您可以丢弃test_db
并重新创建它。测试数据的结构或内容的任何更改都必须在base_test
中完成。
克隆数据库的速度取决于大小,它实质上只是一个文件副本。但是,如果您的测试数据为几GB,则可能不可行。