Ответ 1
Помещая это очень просто: усечение удаляет все данные из базы данных и транзакции откат всех изменений, которые были сделаны в текущем сценарии.
Недавно у меня возникла проблема с одним из моих сценариев огурца. Некоторые записи в моей тестовой базе данных исчезали, пока функция работала. Я решил проблему, изменив строку
DatabaseCleaner.strategy = :transaction
к
DatabaseCleaner.strategy = :truncation
Я не уверен, почему это помогло. Существует таблица на веб-странице gem веб-сайта по очистке базы данных, но она действительно не говорит, что означают два термина. Любая помощь в понимании разницы между двумя концепциями была бы большой.
Помещая это очень просто: усечение удаляет все данные из базы данных и транзакции откат всех изменений, которые были сделаны в текущем сценарии.
Усечение удаляет данные, выходящие из структуры базы данных, транзакция существенно откатывает операцию базы данных и является самой быстрой стратегией. И есть последний, который является удалением. Удаление удаляет данные и удаляет структуру базы данных, это самый медленный, но безопасный. Вы также можете проверить Разницу между стратегиями базы данных об усечении, транзакции и удаления