最近我的一个黄瓜情景出了问题。功能运行时,我的测试数据库中的某些条目正在消失。我通过更改行
解决了这个问题DatabaseCleaner.strategy = :transaction
到
DatabaseCleaner.strategy = :truncation
我不确定为什么这有帮助。数据库清理工具宝石网页上有一个表格,但它并没有真正说出这两个术语的含义。任何帮助理解这两个概念之间的区别都会很棒。
答案 0 :(得分:36)
以非常简单的方式处理:截断从数据库中删除所有数据,并且事务回滚运行方案所做的所有更改。
答案 1 :(得分:1)
Truncation删除了离开数据库结构的数据,事务主要是回滚数据库操作,这是最快的策略。最后一个是删除。删除删除数据并删除数据库的结构,它是最慢但最安全的。 您还可以查看Difference between truncation, transaction and deletion database strategies