Есть ли пакет, который обновляет базу данных до желаемого последнего состояния SSDL? - PullRequest
1 голос
/ 28 апреля 2019
  • Существуют тысячи локальных серверов, на которых запущены все разные версии программного обеспечения, включая определенную версию базы данных (все в разных компаниях)
  • Из центрального отдела разработкирегулярно новые версии или выталкивание программного обеспечения с обновлениями базы данных (новые таблицы, новые представления, новые внешние ключи, новые вставки для перечислений или определенных таблиц, новые хранимые процедуры и т. д.)
  • Эти изменения происходят из разных ветвей разработкивсе привносят свои собственные фрагменты кода SQL, который влияет на схему
  • Обновление клиента обрабатывается с помощью файла .sql, который проверяет локально установленную последнюю версию выпуска схемы базы данных и код SQL, аннотированный, как позже, запускается дляобновить конкретную физическую машину до более поздней версии (автоматически без участия пользователя)

Теперь идея состоит в том, чтобы вместо этого использовать описание EF SSDL конкретной сборки, чтобы привести схему базы данных (сервер sql) клТестовая версия.Потребуется сравнить каждую таблицу, столбец, ограничение и т. Д., Чтобы проверить, равны ли они и, если нет, обновить их с учетом зависимостей.

Вопрос: существует ли существующий пакет, который бы это делал?Так что, например, при запуске приложения оно будет сравнивать существующую физическую базу данных с SSDL и автоматически их синхронизировать?Это должно было бы пропустить объекты базы данных, которых нет в SSDL, поскольку база данных может содержать таблицы или представления, которые были добавлены конкретным клиентом, и не является частью объектов базы данных, необходимых приложению, или является текущим подходом наилучшим путем?(сам по себе это другой подход, чем, например, redgate со сравнением физической базы данных)?

(единственный связанный с этим вопрос, который я нашел здесь: Цель проверки edmgen? Сравнение схем SSDL и базы данных? )

...