Ответ 1
Я работал в системе, которая включала систему управления версиями для переноса БД на последнюю версию, и она работала именно так. Единственное улучшение, которое мы сделали, заключается в том, что мы иногда хотели избежать прохождения всех версий, поскольку это был длительный процесс, поэтому вы могли определять миграции из любой версии в любую версию если вы в версии 1.3 и хотите перейти на последнюю версию, и у вас есть сценарии для миграции из:
- 1.3 - 1.4
- 1.4 до 1.5
- от 1,5 до 1,6
- от 1,6 до 1,7
- от 1.7 до 1.8
- от 1.4 до 1.7
Я бы автоматически обнаружил, что он может использовать одиночный script, чтобы переходить через три версии с 1.4 на 1.7 и использовать 1, 6 и 5. Это стоит того, если миграция длинна, хотя...
Если вам не нужно действительно переносить данные, но просто используйте его в формате последней версии, вы можете достичь того же, используя Adapter Шаблон с использованием композиции объекта для преобразования объекта с форматом "1.3" в формат "1,8" с использованием цепочки адаптеров в середине.
В ответ на комментарий: К сожалению, нам пришлось делать от 1,4 до 1,7 вручную. Вам понадобится что-то довольно умное, чтобы иметь возможность составлять оптимизированные сценарии обновлений из отдельных, не выполняя их последовательно.