Есть ли пакет, который обновляет базу данных до желаемого последнего состояния SSDL?
- Существуют тысячи локальных серверов, на которых запущены разные версии программного обеспечения, включая определенную версию базы данных (все в разных компаниях).
- Из центрального отдела разработки регулярно выпускаются новые версии или программное обеспечение с обновлениями базы данных (новые таблицы, новые представления, новые внешние ключи, новые вставки для перечислений или конкретных таблиц, новые хранимые процедуры и т. Д.)
- Эти изменения происходят из разных веток разработки, каждый из которых вносит свой собственный фрагмент кода SQL, который влияет на схему.
- Обновление клиента обрабатывается с помощью файла.sql, который проверяет локально установленную последнюю версию выпуска схемы базы данных и код sql, который аннотируется позже, запускается для обновления конкретной физической машины до более поздней версии (автоматически без участия пользователя)
Теперь идея состоит в том, чтобы вместо этого использовать описание EF SSDL конкретной сборки, чтобы привести схему базы данных (сервер sql) к последней версии. Необходимо сравнить каждую таблицу, столбец, ограничение и т. Д., Чтобы проверить, равны ли они, а если нет, обновить их с учетом зависимостей.
Вопрос: существует ли существующий пакет, который бы это сделал? Так что, например, при запуске приложения оно будет сравнивать существующую физическую базу данных с SSDL и автоматически их синхронизировать? Это должно было бы пропустить объекты базы данных, которых нет в SSDL, поскольку база данных может содержать таблицы или представления, которые были добавлены конкретным клиентом, и не является частью объектов базы данных, необходимых приложению, или является текущим подходом наилучшим путем? (сам по себе это другой подход, чем, например, Redgate со сравнением физической базы данных)?
(Единственный связанный с этим вопрос, который я нашел здесь, это Цель проверки edmgen? Сравнение схем SSDL и базы данных?)