Интеграционные тесты, как объединить dev и production базы данных?
Есть web-проект, и собираемся сейчас вводить тесты. Так как часто были проблемы со стороны БД - какие-нибудь данные на продакшене ломали работу, хотя на dev'e все было нормально. И поэтому для тестового сервера, надо как-то объединять данные с продакшена и структуру (она ведь может измениться) с сервера разработки. Вариант при каждом изменении структуры руками это все разруливать - не очень. Может у кого был опыт, или есть идеи как можно решить данный вопрос.
Как вариант: допустим вы разработали новый функционал. В процессе разработки менялась структура базы данных. А хочется протестить его на данных с продакшена. В этом могут помочь миграции баз данных (лично я без них уже вообще разработку не представляю).
Вы берете дамп БД с прода. Заливаете себе. Накатываете на него последние миграции и получаете базу с продакшена, но уже с новой структурой. Можно запускать на ней тесты.
@GeraldIstar Если говорить в общем, то миграции - это автоматизированный и достаточно надежный способ преобразования структуры БД. В зависимости от используемых вами технологий, они могут быть реализованы по-разному. Я например в основном работую с PHP-шным фреймворком Yii, который имеет свою реализацию миграций из коробки: yiiframework.ru/doc/guide/database.migration
Для PHP есть и другие реализации миграций, например в Doctrine (webdev-tales.ru/post/62178815430/doctrine-migratio...)
Я не знаю, какой язык и какие технологии используете вы, но уверен, и для вас найдется подходящий инструмент для миграций