Как развернуть сложные решения SQL через установщик? - PullRequest
2 голосов
/ 29 сентября 2008

Часть процедуры установки для продукта, над которым я работаю, устанавливает утилиту обновления базы данных. Утилита проверяет текущую версию базы данных пользователей и (при необходимости) выполняет серию операторов SQL, которые обновляют базу данных до текущей версии.

Две ключевые функции этой процедуры:

  • После запуска он запускается без вмешательства пользователя
  • Операции SQL сохраняют целостность данных пользователей

Цель - сделать процедуру настройки / базы данных максимально простой для конечного пользователя (целевая аудитория не техническая). Тем не менее, я считаю, что в некоторых случаях эти две функции противоречат друг другу. Например, я хочу добавить уникальный индекс в одну из моих таблиц - но возможно, что существующие данные уже нарушают это правило. Я мог бы:

  • Тихо выбирайте, что «подходит» для пользователя, и отбрасывайте (или архивируйте) данные; или
  • Попросите пользователя понять, что такое уникальный индекс, и попросите его выбрать, куда и куда идут данные

Мне не нравится ни один из этих вариантов. Я могу пойти на компромисс и вообще не создавать уникальный индекс, но это будет отстой. Интересно, что другие делают в этой ситуации?

Ответы [ 2 ]

1 голос
/ 29 сентября 2008

Ознакомьтесь с пакетом SQL от Red-Gate. Лично я не использовал его, но в целом эти ребята делают хорошие инструменты, и, похоже, это то, что вы ищете. Это позволит вам изменить скрипт для настройки установки: http://www.red -gate.com / продукция / SQL_Packager / index.htm

0 голосов
/ 29 сентября 2008

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

...