Проверка схемы базы данных - развертываемая / компилируемая
Ищите инструмент, который позволит строить валидацию схемы базы данных, которая может быть скомпилирована в автономный инструмент или как модуль для использования в другом приложении.
Сценарий - это клиент-серверное приложение, которое продается клиентам и поддерживается через сервисные релизы. Сервисные выпуски включают в себя сценарии базы данных для обновления базы данных при любых изменениях схемы и т. Д.
Тем не менее, поскольку это база данных, и клиент может
- неправильно запускать сценарии обновления или
- повозиться и что-то испортить в БД
Я хотел бы, чтобы этот инструмент был доступен с каждым выпуском, чтобы мы могли проверить правильность текущей версии и, возможно, некоторых данных. Также, чтобы он был доступен для удаленной отладки, когда у клиента есть сервисный билет.
Инструменты сравнения схем, которые я исследовал, отлично подходят для сравнения локальных баз данных, но я не видел чего-то, что могло бы генерировать то, что можно развернуть с нашим приложением.
Спасибо!
2 ответа
Взгляните на SchemaCrawler, который идеально подходит для этой цели. SchemaCrawler может генерировать понятные человеку "схемы" (и данные) "моментальных снимков", которые предназначены для сравнения с использованием инструментов сравнения текстовых файлов. SchemaCrawler не зависит от базы данных и операционной системы, является бесплатным, с открытым исходным кодом и может быть вызван из командной строки, а также через Java API.
Вы говорите, что инструменты сравнения схем не соответствуют вашим требованиям, но рассматривали ли вы вопрос об использовании SDK инструмента сравнения схем и написали свой собственный код проверки? Я управляю продуктом SQL Compare в Red Gate и его API, SQL Comparison SDK, например, позволит вам сравнивать моментальный снимок схемы с целевой базой данных и прерывать развертывание, если оно не совпадает, а также сохранять журнал различия, которые могут быть отправлены вам по электронной почте.
http://www.red-gate.com/products/SQL_Comparison_SDK/index.htm