Тази статия е ръководство за това как да използвате опцията за работна папка на контрола на източника за управление на бази данни на SQL Server.
В тази статия също подчертавам някои от предимствата и ограниченията на използването на работна папка в сравнение с други налични опции за използване с контрола на източника.
Нека обсъдим някои ключови концепции, преди да се задълбочим в техническите подробности на тази статия.
Ключови концепции
Какво е контрол на източника
Контролът на източника е система или (част от най-добрия софтуер) практика, която следи всички промени в кода, извършени от разработчиците.
Защо е необходим Source Control
Кодът на приложението, написан от разработчиците, трябва да се запазва от време на време по такъв начин, че всички промени, направени от всеки разработчик, да могат не само да бъдат проследени назад, но и да бъдат върнати, ако е необходимо.
Поради тази причина кодът на приложението е поставен под контрол на изходния код, за да се гарантира, че историята на всички промени заедно с коментарите се съхранява добре, плюс има много други предимства от използването на контрола на източника, които са извън обхвата на тази статия.
Контрол на източника срещу контрол на версиите
Няма разлика между Source Control и Version Control и най-вече тези два термина се използват свободно взаимозаменяемо.
Поставяме ли базите данни под контрол на източника
Точно като кода на приложението, обектите на базата данни като таблици, изгледи, съхранени процедури и т.н. също трябва да бъдат контролирани с версии. Въпреки това, методът за поставяне на обекти от база данни под контрол на източника е малко и в някои случаи напълно различен от този, когато кодът на приложението се поставя под контрол на източника.
Пример за база данни за управление на версии
Да предположим, че създавате примерна база данни, наречена „Автомобили“, според бизнес изискването.
След това създавате таблица, наречена „Car“ с CarId и CarName колони, за да отговарят на друго изискване.
При ваше отсъствие на друг разработчик е възложена задача да добави CarType колона към таблицата „Автомобил“.
Той решава да премахне CarName колона, смятайки, че не е задължителна и я заменете с CarType колона.
Връщате се след дълго време и сте изненадани да видите, че вашето Име на кола колоната не само липсва, но също така е заменена с CarType колона.
Сега не помните оригиналния тип данни и дължината, които сте избрали за CarName освен ако не преминете през целия набор от бизнес изисквания.
Чакай малко! Този проблем може лесно да бъде разрешен, ако на първо място сте обмислили използването на контрол на източника за вашата база данни. След това можете лесно да видите първата промяна, която сте направили, която съдържа дефиницията на колоната и след това втората промяна, извършена от друг разработчик.
И така, вие и другият разработчик седите заедно и преминавате през историческите промени, направени в базата данни (обект), като използвате контрола на източника, който следи всяка една промяна, направена от всеки разработчик в базата данни.
Това е илюстрирано по следния начин:
Най-важното използване на Source Control
Една от основните причини да използвате контрола на източника е да можете да поддържате няколко версии на кода едновременно чрез създаване на следните клонове на кода:
- Разработчик (клон за разработка)
- Тест (Тестов клон)
- QA (QA клон)
- Продукция (Производствен клон)
Техническите подробности за създаване на клонове Dev, Test, QA и Production от контрола на източника са извън обхвата на тази статия.
Предварителни условия
Тази статия е най-подходяща за онези читатели, които отговарят на следните изисквания:
Основни познания по T-SQL
Трябва да имате някои основни познания за T-SQL, за да създавате, заявявате и променяте обекти на база данни, като таблици, изгледи и съхранени процедури.
Инструменти за разработка на бази данни
Трябва да имате инсталиран SSMS (SQL Server Management Studio) или dbForge Studio за SQL Server на вашата машина, за да създавате и управлявате бази данни и техните обекти.
Наличност на източника на данни за работната папка
Въпреки че всеки контрол на източника, който предлага опцията за работна папка, е добре, се препоръчва да използвате dbForge Source Control, за да следвате всички стъпки от ръководството в тази статия.
Контрол на източника на работна папка
Работната папка с ограничена функционалност за обекти на база данни за контрол на версиите може да се използва точно както други системи за контрол на източници като TFS, Git и др.
Работната папка просто съдържа SQL скриптови файлове, използвани за създаване и управление на обекти на база данни.
Кога да използвате работна папка
Да предположим, че искате да създадете база данни и свързаните с нея обекти от нулата, но все още не сте сигурни кой контрол на източника в крайна сметка ще използва вашият екип. Тогава е по-добре да започнете с опцията за контрол на източника на работната папка.
Друга причина може да е, когато просто искате да съхраните текущото състояние на базата данни и не сте заинтересовани да следите историческите промени, тогава работната папка е добър кандидат за използване като контрол на източника.
Ограничение на работната папка
Работната папка към обектите на базата данни за контрол на версиите е ограничена по отношение на запазването на най-новата версия на базата данни и нейните обекти и няма начин да се проследят промените или да се върнат обратно.
Така че трябва да внимавате, когато използвате Working Folder като своя опция за контрол на източника, защото не може да ви показва всички промени, направени в базата данни и нейните обекти от време на време.
Показване:Свързване на база данни с работна папка
Нека преминем през стъпките, за да свържем вашата база данни с работеща папка, използвайки контрола на източника.
Изисквания за добавяне на книга и тип книга
Получихте вътрешни изисквания за създаване на тестова база данни, наречена „SQLBookShopV2“, която съдържа следните две таблици:
- Книга
- Тип на книга
Базата данни не изисква непременно контрол на източника в този момент и не е важно да следите всички направени промени.
Проверете изискванията
Често е добра практика да проверите отново изискванията, преди да използвате работна папка. Работната папка е най-подходяща, ако бъдете помолени да създадете база данни със следните изисквания:
- Изисква се тестова база данни или прототип на база данни
- Историята на промените в базата данни не е задължителна
- Решението кой контрол на източниците в крайна сметка ще бъде използван все още не е взето
Настройване на работна папка
Първата стъпка е да оставите настрана папка, където ще се намират вашите скриптове на тестовата база данни, след като започнете да проверявате кода на базата си в работната папка.
Създайте нова папка, наречена „SQLBookShopV2 Scripts“ под C Drive.
Настройте примерна база данни на SQLBookShopV2
Отворете dbForge Studio за SQL Server и от менюто База данни щракнете върху „Нова база данни“:
Въведете „SQLBookShopV2“ в името на базата данни и щракнете върху бутона „Прилагане на промените“ в долната част на прозореца:
Свързване на база данни с работна папка
По-добре е да свържете базата данни с контрола на източника веднага след създаването й.
Щракнете с десния бутон върху базата данни (SQLBookShopV2) и изберете Source Control à Свързване на база данни с елемент от менюто Source Control:
Намерете работната папка, създадена по-рано, за да я свържете с базата данни:
Можете да изберете желания модел за разработка на база данни. Избираме модела за развитие на споделена база данни:
Проверете малката икона за контрол на източника до базата данни, която потвърждава, че базата данни е била успешно свързана с контрола на източника на работната папка:
Създаване на таблица с книги
Щракнете с десния бутон върху Таблици и след това щракнете върху Нова таблица и създайте таблица с книги, като използвате следния код и приложете промените:
СЪЗДАВАНЕ НА ТАБЛИЦА SQLBookShopV2.dbo.Book ( BookId INT IDENTITY ,BookTitle VARCHAR(50) НЕ NULL ,Бележки VARCHAR(200) ,CONSTRAINT PK_Book_BookId ПЪРВИЧЕН КЛУСТЕР (BookId))GO
Отвържете промени в кода на базата данни
Тъй като създадохме нова таблица в базата данни, тези локални промени трябва да бъдат взети от контрола на източника, за да бъдат запазени.
Отворете Source Control Manager (който показва последните промени, които трябва да бъдат запазени), като щракнете с десния бутон върху базата данни и след това щракнете върху Източник à Показване на диспечера за контрол на източниците
Щракнете върху Commit за да проверите в контрола на източника на работната папка:
Проверка на работната папка
Отидете в работната си папка и вижте обекта на таблицата, записан там в резултат на последния комит:
Създаване на таблица с типове книги
Създайте друга таблица BookType, като използвате следния код:
СЪЗДАВАНЕ НА ТАБЛИЦА SQLBookShopV2.dbo.BooKType ( BookTypeId INT IDENTITY ,Име VARCHAR(50) NULL ,Подробност VARCHAR(200) NULL ,CONSTRAINT PK_BooKType_BookTypeId PRIMARY KEY) GOYT CLU>
Добавяне на таблица към Source Control
Добавете новосъздадената таблица към контролата на източника, като използвате същия метод, както беше споменато по-рано и след това проверете работната папка, за да видите, че и двете таблици са там:
Честито! Успешно свързахте вашата база данни с контрола на източника на работната папка.
Предпазни мерки за работната папка
Моля, запомнете, че работещата папка в чист вид, тъй като контролата на източника е точно като обикновена папка на Windows и ако бъде променена външно, тя вече не може да запомни последното си състояние.
Например, ако изтрием Book.sql кода от работната папка и след това проверим за промени с помощта на Source Control Manager, ще трябва да добавим кода на таблицата Book отново в работната папка.
Отговорността за защитата на работната папка лежи върху плещите на разработчиците, а не на изходния код (в оригиналния му вид), освен ако не следвате стриктно заобикалянето, което се е оказало успешно.
Неща за правене
Вече можете лесно да поставите обектите на базата си данни, като използвате опцията за контрол на източника на работната папка:
- Моля, опитайте да създадете друга база данни, като свържете Книгата таблица с BookType таблица по такъв начин, че BookTypeId първичен ключ на BookType таблицата се предава като BookTypeId колона с външен ключ в Книгата таблица след използване на контрола на източника на работна папка.
- Моля, опитайте да създадете съхранена процедура, наречена AddBook за да добавите нова книга към Книгата таблица след свързване на вашата база данни с контрола на източника на работеща папка.
- Моля, опитайте да създадете изглед на база данни Книги за да видите списъка на всички книги с техните типове и да проверите всички промени в контрола на източника на работната папка.
Допълнително четене:
Проследяване на промени в базата данни с помощта на контрола на източника на работни папки
Полезен инструмент:
dbForge Source Control – мощна SSMS добавка за управление на промените в базата данни на SQL Server в контрола на източника.