我目前正在使用 Liquibase 在每次测试运行之前在我的数据库中创建测试数据。
我遇到了一个问题,其中一些测试用例需要特殊数据,而另一些则需要表为空。
所以我决定尝试一下 Liquibase 上下文,只插入我当前测试用例真正需要的数据加上 - 在抽象超类中 - 每个测试用例需要的所有数据(用户帐户和东西)......
我想在每次运行之前清除表格,但是我似乎找不到任何关于这种情况的东西,除了dropAll()
,这似乎有点矫枉过正......
我不太确定这是否可能——因为外键和其他限制——但我想知道是否有一种方法可以删除所有表的内容而不完全删除它们?
我想最快的方法是使用
truncate ... cascade
在所有“顶级”表上使用的自定义 sql 标记。使用
cascade
truncate 关键字还将(递归地)从所有相关表中删除所有行(所有表都引用被截断的表)。就像是:
不知道这对于您拥有的表格数量是否可行。