Давайте предположим, что я делаю какое-то нетривиальное изменение в моей базе данных, которое требует "нестандартной" работы для обновления с версии A на B. Например, преобразование столбцов идентификаторов пользователей из типа данных UUID в имя пользователя домена Windows.
Как я могу сделать это автоматически развертываемым? То есть я хочу позволить разработчикам щелкнуть правой кнопкой мыши проект, выбрать «Развернуть» и выполнить эту логику, если они используют базу данных достаточно старую.
Я не вижу места для такого входа в проекты баз данных - похоже, нет никаких условий для таких "сценариев обновления". Это действительно невозможно? Чтобы уточнить, логика, очевидно, не может быть сгенерирована автоматически, но я хочу, чтобы она выполнялась автоматически по мере необходимости.
Первым логическим препятствием, конечно, будет то, что утилита развертывания не будет знать, нужно ли обновлять какую-либо такую логику - я бы предположил, что мог бы также предоставить логику для этого (например, проверить таблицу версий и если последняя версия <5.0, выполните это обновление, позже добавив строку новой версии). </p>
Возможно ли это? Можно ли полностью автоматизировать развертывание с помощью сложных пользовательских сценариев изменений? Без того, чтобы мне приходилось вставлять всю мою собственную логику изменений в (скоро) огромные сценарии до или после сборки, конечно ...