Множество миграций баз данных в весеннем проекте - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть проект с более чем 50 миграциями жидкостей. У меня есть таблицы: валюты, страны ... И они заполняют миграции прямо сейчас. Проблема в том, что для каждого интеграционного теста, в котором работает контекст, мне нужно выполнить все свои 50 миграций. Это требует времени. И, как вы знаете, весна не самая быстрая структура. Что я могу сделать? Время, которое Gradle тратит на прохождение всех тестов, составляет 10 минут.

Конечно, вы можете сказать, что это монолит, да, но клиент не хочет разделять логику, потому что средний уровенькоманда довольно низкая.

Как я могу ускорить мои интеграционные тесты?

1 Ответ

1 голос
/ 07 ноября 2019

В зависимости от типа миграции, они могут не являться фактической проблемой производительности. В настоящий момент я рассматриваю около 130 миграций в одном проекте, и хотя они занимают определенное количество времени, это ничто по сравнению со временем, необходимым для настройки и разрушения тестового контекста. Начиная с чистого листа, я бы ожидал, что в лучшем случае он сбрится на 10-20 секунд.

Впрочем, может иметь смысл перезапуск по другим причинам. Например, у нас есть наборы изменений 2015 года, которые откатились в других наборах изменений, поэтому они просто лишние беспорядки. Документация не очень конкретна, но вы можете удалить все наборы изменений и начать с начала в середине проекта. Однако вам нужно быть осторожным, чтобы вы знали, каково правильное состояние базы данных (без каких-либо новых изменений, которые вы могли бы сделать). Как упомянуто в документации, это обычно означает состояние производственной базы данных.

Но помните, это не гарантирует значительного ускорения.

...