Как вы откатываете базу данных после результатов тестирования?
Привет!
После результатов тестирования некоторых функций мне нужно откатывать базу данных в первоначальное состояние, которое было до тестирования. Проблема в том, что если сама тестируемая функция работает с транзакциями, то я не могу обернуть такой тест в свою транзакцию. Т.к. например, postgres не поддерживает вложенные транзакции.
Например, у меня есть функция, которая принимает какие-то значение, делает выборку других значений, обрабатывает их и сохраняет куда-нибудь. Все что мне нужно, это проверить сохраненные значения, и откатить базу. Но вот вложенные транзакции все портят.
Перед каждым тестом БД приводиться к исходному состоянию, только так. Удаление нафиг всех таблиц и накатка всех фикстур. Иначе результаты тестов будут перемешиваться между собой, что мягко говоря - хреновая практика.
Да, фикстуры это решение, но оно очень затратное. У меня БД на 10гб, там 100+ таблиц, представлений и т.п. Она изменяется чуть ли не каждый день, что я миграции не успеваю накатывать. С фикстурами моя работа сведется на постоянную их правку.
memba
> Да, фикстуры это решение, но оно очень затратное.
еще и единственное
> У меня БД на 10гб, там 100+ таблиц, представлений и т.п.
Какая разница сколько там весит прод БД?)
> Она изменяется чуть ли не каждый день, что я миграции не успеваю накатывать.
Собственно и чо?)) Вы несете ответственность за все таблицы?
> С фикстурами моя работа сведется на постоянную их правку.
Если меняется структура БД, или код ее обрабатывающий - то меняются и тесты с тестовыми данными, это ж очевидно.