Введение: «Так исторически сложилось»

Представьте: вы работаете в крупной компании с федеральной сетью. У вас более 300 баз данных Microsoft SQL Server, сотни тысяч объектов — таблиц, процедур, функций, триггеров. Значительная часть бизнес-логики реализована с использованием cross-database references и распределённых запросов через linked servers, что создаёт сложные зависимости между объектами на разных базах и даже серверах.

А теперь представьте, что все изменения в схему вносятся напрямую в production — через SSMS, без версионирования, без ревью, без возможности отката.

Звучит как кошмар? Но именно так работала наша команда более 10 лет.
«Так исторически сложилось» — и это было нормой. Такой подход неизбежно порождал инциденты: от локальных нарушений целостности данных до масштабных простоев, напрямую влияющих на выручку и репутацию компании.

Мы поняли: нужно внедрять CI/CD. Но главная проблема оказалась не в технологиях — а в людях.

Почему стандартные инструменты не сработали

Flyway и Liquibase — отличные инструменты. Однако они предполагают, что каждый разработчик вручную пишет и согласует SQL-миграции. Это прекрасно работает в мире микросервисов, но в нашей реальности — неработоспособно:

  • каждую неделю вносятся тысячи изменений в десятки баз;

  • над схемами одновременно работают десятки разработчиков;

  • изменения пересекаются, конфликтуют и зависят друг от друга через linked servers и cross-database связи.

Ожидать, что каждый после правок аккуратно воссоздаст их в виде корректной, упорядоченной и непротиворечивой миграции — значит обрекать процесс на провал. Люди бы теряли часы на отладку, забывали про зависимости, путали порядок выполнения — и в итоге просто возвращались к прямым правкам в production.

Я понял: если миграции требуют от разработчика дополнительных усилий, они не приживутся. Чтобы CI/CD заработал, генерация миграций должна быть автоматической, прозрачной и безопасной. Разработчикам нужен мощный ассистент. Только так можно сделать процесс устойчивым — а не демотивирующим.

Решение: SchemaFlow AI — платформа, а не просто скрипт

Я разработал SchemaFlow AI — enterprise-платформу, которая превращает хаос в управляемый workflow. Главная идея проста: разработчик делает то, что умеет — пишет SQL-код. А всё остальное берёт на себя система.

Основной вид позволяет легко искать нужные репозитории.
Основной вид позволяет легко искать нужные репозитории.
История всех миграций и коммитов — всегда под рукой.
История всех миграций и коммитов — всегда под рукой.
Быстрый доступ к деталям каждой миграции.
Быстрый доступ к деталям каждой миграции.

Как это работает — по шагам

1. Подключение в несколько кликов

Мы сделали всё максимально просто. Подключение базы к сервису, экспорт схемы, создание репозитория в GitLab и настройка пайплайнов — всё происходит за несколько кликов через мастер.

Шаг 1: выбор MSSQL-сервера из списка доступных.
Шаг 1: выбор MSSQL-сервера из списка доступных.
Шаг 2: выбор одной или нескольких баз на сервере.
Шаг 2: выбор одной или нескольких баз на сервере.
Перед подключением система просит создать пользователя с минимальными правами. Для удобства она автоматически генерирует SQL-скрипт, который нужно выполнить на сервере.
Перед подключением система просит создать пользователя с минимальными правами. Для удобства она автоматически генерирует SQL-скрипт, который нужно выполнить на сервере.
Пользователь создан — база готова к подключению.
Пользователь создан — база готова к подключению.
Дальше все сделает система: создаёт репозиторий в GitLab -> настраивает CI/CD-переменные и пайплайны -> экспортирует всю схему -> создаёт структуру репозитория -> инициализирует Flyway
Дальше все сделает система: создаёт репозиторий в GitLab -> настраивает CI/CD-переменные и пайплайны -> экспортирует всю схему -> создаёт структуру репозитория -> инициализирует Flyway
Готово!
Готово!
Получен полностью настроенный CI/CD-репозиторий.
Получен полностью настроенный CI/CD-репозиторий.
Пайплайны prepare и deploy уже готовы к работе.
Пайплайны prepare и deploy уже готовы к работе.

2. Работа как обычно

Разработчик клонирует репозиторий и продолжает работать привычными средствами.

Клонирование репозитория — стандартная операция.
Клонирование репозитория — стандартная операция.
Структура: все объекты организованы по схемам и типам внутри папки objects.
Структура: все объекты организованы по схемам и типам внутри папки objects.
Новые объекты создаются так же, как и раньше — привычными разработчику средствами.
Новые объекты создаются так же, как и раньше — привычными разработчику средствами.

3. AI генерирует миграцию

Как только в репозитории появляются коммиты с изменениями схемы, ответственный за выпуск запускает пайплайн prepare.
Этот пайплайн отправляет запрос в SchemaFlow AI, который автоматически анализирует разницу между текущей и целевой версиями схемы.

Процесс генерации миграции происходит в два этапа:

  1. Планирование
    SchemaFlow AI строит детальный план миграции: определяет все необходимые действия — CREATE, ALTER, DROP — с учётом зависимостей между объектами. Результат сохраняется в виде человекочитаемого документа:review/V{номер}_review.md.Этот файл служит основой для код-ревью: инженеры могут проверить логику изменений, убедиться в корректности порядка операций и оценить потенциальные риски — до выполнения любого SQL-кода.

  2. Генерация
    На основе утверждённого плана SchemaFlow AI создаёт готовый SQL-скрипт миграции, совместимый с Flyway:flyway/sql/V{номер}__*.sql.Скрипт содержит команды в правильной последовательности, безопасен для применения и учитывает особенности MSSQL (включая работу с linked servers, схемами, зависимостями и т.д.).

Оба файла — и план, и скрипт — автоматически коммитятся обратно в репозиторий. Это обеспечивает полную прозрачность, воспроизводимость и соответствие принципам Database-as-Code и GitOps.

4. Ревью и деплой

Ответственный за миграцию проводит ревью файла миграции, в этом ему помогает review.md — с описанием изменений, рисками, рекомендациями.

Файл ревью с простым и удобным описанием предстоящей миграции + оценка рисков.
Файл ревью с простым и удобным описанием предстоящей миграции + оценка рисков.
Корректно подготовленный скрипт миграции. Approved!
Корректно подготовленный скрипт миграции. Approved!
Deploy to prod!
Deploy to prod!
Проверяем, что все объекты создались.
Проверяем, что все объекты создались.

Аналитика и контроль

Аналитический дашборд показывает активность, тренды, риски и метрики эффективности.
Аналитический дашборд показывает активность, тренды, риски и метрики эффективности.

Здесь — «непаханое поле»: всё ограничивается лишь вашей фантазией и потребностями бизнеса.

Почему это сработало: фокус на удобстве

  • Нет обучения: разработчику не нужно осваивать новые парадигмы — он работает как раньше.

  • Нет страха: система берёт на себя рутину и риски, связанные с зависимостями.

  • Нет хаоса: каждая миграция проходит ревью, версионируется и аудируется.

Команда не сопротивлялась, потому что ничего не потеряла — но получила контроль.

Заключение

Надеюсь, вам не было скучно — и, что ещё важнее, что эта статья окажется кому-то полезной и вызовет интерес.

Я занимаюсь MSSQL уже много лет в роли DBA, обожаю performance tuning, строю системы мониторинга и автоматизирую процессы. Последний год активно изучаю возможности ИИ и методы его применения в повседневной работе.

Если вам интересно — следующая статья будет про мой продукт AI QueryAnalyzer и о том, как он помогает командам находить проблемный код и оптимизировать запросы.

Спасибо за внимание! Если вы дочитали до сюда — я искренне надеюсь, что не зря потратил ваше время.