Мне нужен способ найти текущий номер патча базы данных ...
Для начала, как вы храните в базе данных ревизионную базу, в которой вы сейчас находитесь? Я сталкивался с 3 различными схемами отслеживания изменений:
- таблица аудита DDL,
- таблица с 1 строкой с номером версии,
- «Ничего» - где вы должны угадать, основываясь на том, какие столбцы, таблицы, представления и хранимые процедуры - это ревизия базы данных.
Таблица аудита может быть такой же простой, как столбец для номера исправления, столбец, когда он был завершен, или более сложной , как в этом примере .
Таблица версий - это иногда максимум, с чем я могу справиться в компаниях, в которых я работаю. Как минимум, ему просто нужно 2 или 3 столбца и 1 строка. Структура этой таблицы никогда не должна изменяться, чтобы приложение версии 51 могло открыть базу данных, созданную версией 2.
Большинство компаний, в которых я работал, не имеют схемы для отслеживания, какая версия базы данных, кроме детективной работы, выясняют, что table_Q был добавлен в версии 17, но view_P был добавлен в версии 19 и удален в версии 21, так что эта база данных, вероятно, версии 19 или 20.
Один из моих друзей говорил со мной о DotNetNuke на прошлой неделе, и он утверждал, что в нем была какая-то схема исправлений, которая может обнаруживать исправления, помещенные в каталог, определять, были ли они уже применены, и обрабатывать те, которые не были. Я посмотрю, смогу ли я получить более подробную информацию от него.