Я использую FM для развертывания базы данных.Как часть этого развертывания, я выкатываю представление.Изменения выглядят так:
R1: создание представления
R2: без изменений для просмотра
R3: добавление столбца к представлению
R4:без изменений
R5: удалить столбец из представления
Представление создается сценарием, который находится в системе управления версиями.Допустим, я развернул R3, а затем решил, что мне нужно откатиться на R2 (я имею в виду производственную площадку, которую я не хочу оставлять в нечетном состоянии).Таким образом, скрипт вида (drop / create) находится в локальном файле.Я не могу использовать этот скрипт снова, потому что локальная версия находится на R3, но я хочу, чтобы он вернулся на R1 (или R2).
Как надежно откатить представление до предыдущей версии с помощью FluentMigrator ?Единственный вариант, который я могу придумать, - это сохранить сценарий создания представления в строке в моем классе миграции.Но мне кажется, что мне нужно было бы иметь каждую его версию в строке в моем классе - очень громоздко и трудно продать команде.
Каждое реалистичное решение, которое я могу придумать, противоречит идее управления исходным кодом - иметь единственную версию вещи локально и отслеживать ее изменения во времени.