надявам се, че всички тук са добре.
Използваме VS 2008 като инструмент за разработка, TFS 2008 като контрол на версиите, както и автоматизация на изграждането. Някои от нашите програмисти използват dbpro за промени в базите данни, а някои използват студио за управление на SQL Server.
Опитвам се да автоматизирам изграждането на уеб приложение, създадено с помощта на C# и VB.Net. Нашият сценарий е такъв, че имаме централна база данни, към която се свързва нашето уеб приложение.
Всеки път, когато предоставяме на нашите клиенти нова функционалност или корекция на грешка, ние им предоставяме постепенни компилации.
SQL скриптът се проверява в контрола на източника за всяка инкрементална компилация, когато са направени и тествани там промени на нашия централен DB сървър.
Искам да генерирам диференциален скрипт, който може да се изпълнява на клиента като скрипт за постепенна актуализация. Сега да го направя е проблем. Понякога нашите разработчици са склонни да забравят наборите за промяна на базата данни и в скрипта в контролата на източника липсва SP или две.
Освен това понякога трябва да вмъкнем данни по подразбиране в някои от таблиците, които имат строги строги стойности, а не тестови стойности. Подобно на таблица, която съдържа услугите, предоставяни от панела, ние добавяме ново име на услугата, подпис, идентификационни данни и адрес на услугата и т.н. и т.н. в ServiceTable. Освен това много други таблици може да имат тестови данни, които може да не са необходими.
Ако използваме DataCompare, той ще генерира набор от промени за изискваните данни (важни за клиента, за да активира определени услуги) и нашите тестови данни, които са добавени към базата данни в резултат на нашето тестване на функционалността или корекция на грешки.
В момента използвам SQLSchemaCompareTask (от Visual Studio 2008 Team Database Professional Power Tools API) във файла TFSBuild.proj на дефиницията на компилация за TFS 2008.
Използвайки SQLSchemaCompareTask, генерираният скрипт съдържа имена на бази данни като [dbo]. и т.н., които не са желани, тъй като скриптът се проваля, когато се изпълнява срещу бази данни на SQL Server 2000 (Някои от нашите клиенти все още използват SQL Server 2000) бази данни като бекенд на приложението.
Освен това данните по подразбиране не могат да бъдат генерирани от този процес.
За да преодолея този проблем, трябва да измисля решение, което може да сравнява бази данни и автоматично да генерира скрипт, който не трябва да се преглежда отново ръчно, преди да бъде изпратен на клиента.
Моля, предложете ефективна методология за такова генериране на SQL скрипт и предложете дали могат да се използват две различни бази данни или нещо подобно? Има ли някакъв инструментариум или API, който може да активира автоматизиране на изграждането на бази данни на SQL Server?
Благодаря на всички ви.
за разбирането
Стив