Я отвечаю за базу данных.
Он имеет около 126 sprocs, около 20 просмотров, некоторые UDF. Есть несколько таблиц, в которых хранятся фиксированные данные конфигурации для наших различных приложений.
Я использовал один большой текстовый файл, содержащий IF EXIST ... DELETE GO CREATE PROCEDURE ... для всех sprocs, udfs, представлений и всех вставок / обновлений для скриптов конфигурации.
Со временем были добавлены новые звездочки или изменены существующие звездочки.
Самая большая ошибка (насколько мне известно), которую я допустил при создании этого БОЛЬШОГО текстового файла BIG, заключается в использовании кода для новых / измененных sprocs в начале текстового файла. Я, однако, забыл исключить предыдущий код для новых / измененных sprocs. Давайте проиллюстрируем это:
Скажем, мой БОЛЬШОЙ скрипт (версия 1) содержит скрипт для создания sprocs
sp 1
sp 2
sp 3
view 1
view 2
Таблица версий базы данных обновляется до версии 1.
Теперь в sp 2. произошли некоторые изменения. Итак, версия 2 BIG-скрипта теперь:
sp2 --> (newly added)
sp1
sp2
sp3
view 1
view 2
Итак, очевидно, что запуск БОЛЬШОГО скрипта версии 2 не приведет к обновлению моего sp 2.
Я немного опоздал, осознав это с более чем 100 числами звезд.
Исправительное действие:
Я создал структуру папок. Одна подпапка для каждого просмотра / просмотра.
Я просмотрел последнюю версию BIG-скрипта с самого начала и поместил код для всех скриптов в соответствующие папки. Некоторые сценарии повторяются более одного раза в БОЛЬШОМ сценарии. Если для создания конкретного sproc имеется более одного блока кода, я помещаю более раннюю версию в другую подпапку с именем «old» в папке этого sproc. К счастью, я всегда документировал все изменения, которые я сделал для всех sprocs / view и т. Д. - я записываю дату, номер версии и описание изменений, внесенных как комментарий в коде sproc. Это очень помогло мне выяснить последнюю версию кода для sprocs, когда для sproc имеется более одного блока кода.
Я создал пакетный процесс DOS для объединения всех отдельных сценариев для создания моего БОЛЬШОГО сценария. Я попытался использовать .net streamreader / writer, который путается с кодировкой и знаком "£". Так что пока я придерживаюсь пакета DOS.
Есть ли способ улучшить весь процесс?
В настоящий момент я пытаюсь документировать версию BIG-скрипта вместе с отдельными версиями sproc. Например, мне нравится иметь некоторый способ документировать
Big Script (version 1) contains
sp 1 version 1
sp 2 version 1
sp 3 version 3
view 1 version 1
view version 1
Big script (version 2) has
sp 1 version 1
sp 2 version 2
sp 3 version 3
view 1 version 1
view 2 version 1
Любые отзывы приветствуются.