Поделиться через


Практическое руководство. Развертывание изменений в новой или существующей базе данных

После внесения изменений в проект базы данных необходимо развернуть эти изменения на сервере базы данных. При развертывании проекта базы данных схема, определенная в проекте базы данных, сравнивается с целевой схемой, чтобы определить набор действий, которые должны быть выполнены для синхронизации этих схем. Эти действия объединяются со скриптом, выполняемым перед развертыванием, и скриптом, выполняемым после развертывания, для формирования полного скрипта развертывания. Если целевая база данных не существует или выбрана установка всегда заново создавать базу данных, скрипт построения создает базу данных. Если при создании новой базы данных уже имеется база данных с таким же именем, скрипт развертывания пытается отключить существующую базу данных. Если проект базы данных, его свойства или содержимое изменилось со времени последнего построения или развертывания, при следующем построении этого проекта генерируется актуальный DBSCHEMA-файл.

В производственной среде развертывание, скорее всего, не будет выполняться непосредственно в целевую базу данных. Вместо этого создается скрипт развертывания (файл .SQL), который просматривается и, возможно, обновляется, после чего выполняется его развертывание с помощью Редактора Transact-SQL. Можно также использовать такой инструмент, как SQL Server Management Studio.

Базу данных можно также развернуть с помощью инструмента VSDBCMD.EXE. Можно указать DBSCHEMA-файл, который требуется использовать для развертывания базы данных. VSDBCMD можно использовать для развертывания с компьютера, на который не установлен Visual Studio. Дополнительные сведения см. в разделе Практическое руководство. Подготовка базы данных к развертыванию из командной строки с помощью программы VSDBCMD.EXE.

Важно!

Перед развертыванием проекта базы данных необходимо задать в свойствах проекта подключение к конечной базе данных и ее имя.Если проект базы данных генерировался с использованием мастера создания проекта базы данных, то, возможно, вы уже задали свойства проекта.Эти свойства можно изменить в любое время.Дополнительные сведения см. в разделе Практическое руководство. Настройка свойств базы данных для проектов баз данных.

Требуемые разрешения

Необходимо иметь требуемые разрешения на создание базы данных (для нового развертывания) и создания, изменения и удаления объектов схемы и этой базе данных для развертывания проекта базы данных.

Развертывание в одну базу данных

Можно развернуть базу данных с помощью Visual Studio, из командной строки или выполнив скрипт развертывания в редакторе Transact-SQL. Можно использовать редактор Transact-SQL, поставляемый с Visual Studio, или другой инструмент, например Management Studio SQL Server.

Развертывание проекта базы данных в новой или имеющейся базе данных

  1. В обозревателе решений щелкните проект базы данных, который требуется развернуть.

    Если создана пользовательская конфигурация, можно указать, что она должна использоваться, щелкнув ее имя в списке Конфигурации решения на панели инструментов Стандартная. По умолчанию имеется единственная конфигурация для проекта базы данных и она всегда выбрана.

  2. В меню Построение выберите пункт Развернуть.

    Выходные данные построения для проекта базы данных будут сгенерированы (если они еще не существуют или не актуальны) и затем развернуты. В окне Выходные данные отобразятся результаты развертывания, которые выглядят следующим образом.

    Имя_проекта -> D:\Documents and Settings\Имя_пользователя\My Documents\Visual Studio 2008\Projects\Имя_решения\Имя_проекта\sql\Имя_проекта.dbschema

    ------ Развертывание начато: проект: Имя_проекта, конфигурация: отладка любого ЦП ------

    Скрипт развертывания Имя_проекта.sql создан

    Создание Имя_проекта

    Создание dbo.Имя_объекта

    .

    .

    .

    .

    ========== Построение: успешно и без изменений: 1, с ошибками: 0, пропущено: 0 ==========

    ========== Развертывание: успешно: 1, с ошибками: 0, пропущено: 0 ==========

Развертывание проекта базы данных в новой или имеющейся базе данных из командной строки

  1. Откройте окно командной строки и перейдите в каталог проекта.

  2. В командной строке введите следующий пример команды для развертывания проекта базы данных (где проектБазыДанных — имя проекта):

    MSBuild /t:Build;Deploy DatabaseProject.dbproj

    Примечание

    Файл MSBuild.exe должен располагаться по пути, заданному переменной среды PATH.Кроме того, необходимо задать TargetDatabase и TargetConnectionString либо в проекте базы данных, либо как часть командной строки.Дополнительные сведения о синтаксисе командной строки для создания скриптов построения см. в разделе Общие сведения о построении и развертывании базы данных.

    Появятся результаты, подобные следующим:

    Microsoft (R) Build Engine Version 3.5.21022.8

    [Microsoft .NET Framework, Version 2.0.50727.1433]

    Copyright (C) Microsoft Corporation 2007. All rights reserved.

    Build started 5/20/2008 1:36:58 PM.

    Project "диск_проекта:\Documents and Settings\имя_пользователя\My Documents\Visual Studio 2008\Projects\имя_решения\имя_проекта\имя_проекта.dbproj" on node 0 (Deploy target(s)).

    Project "диск_проекта:\Documents and Settings\имя_пользователя\My Documents\Visual Studio 2008\Projects\имя_решения\имя_проекта\имя_проекта.dbproj" (1) is building "диск_проекта:\Documents and Settings\имя_пользователя\My Documents\Visual Studio 2008\Projects\имя_решения\имя_проекта\sql\имя_проекта.deploymanifest" (2) on node 0 (DspDeploy target(s)).

    Deployment script Имя_проекта.sql generated

    :

    (1 row(s) affected)

    Done Building Project "диск_проекта:\Documents and Settings\имя_пользователя\My Documents\Visual Studio 2008\Projects\имя_решения\имя_проекта\sql\имя_проекта.deploymanifest" (DspDeploy

    target(s)).

    Done Building Project "диск_проекта:\Documents and Settings\имя_пользователя\My Documents\Visual Studio 2008\Projects\имя_решения\имя_проекта\имя_проекта.dbproj" (Deploy target(s)).

    Build succeeded.

    0 Warning(s)

    0 Error(s)

    Time Elapsed 00:00:07.32

Развертывание базы данных с помощью скрипта развертывания

  1. Откройте скрипт развертывания в своем редакторе Transact-SQL.

    Примечание

    В этом описании предполагается, что используется редактор Transact-SQL, поставляемый с Visual Studio.

    Скомпилированный скрипт развертывания называется имя_проекта.sql и находится в папке имя_решения\имя_проекта\sql\конфигурация. конфигурация — конфигурация построения, например "Отладка" или "Выпуск".

  2. В строке меню последовательно выберите Данные, Редактор Transact-SQL, Режим SQLCMD, если он еще не включен.

    Важно!

    Если режим SQLCMD не будет включен, при запуске скрипта развертывания возникнут ошибки, поскольку выражения :setvar не поддерживаются.

  3. Для выполнения скрипта развертывания последовательно выберите в строке меню Данные, Редактор T-SQL и Выполнить код SQL. По запросу задайте информацию о подключении к серверу, на который требуется выполнить развертывание.

    Скрипт развертывания выполнится и база данных будет создана.

Развертывание в нескольких базах данных или на нескольких серверах

Можно развернуть схему в нескольких базах данных или на нескольких серверах. Если развертывание выполняется на небольшом количестве серверов или баз данных, которое не меняется (например, когда требуется выполнить развертывание на личном сервере разработки и промежуточном сервере), можно создать несколько конфигураций построения. Каждая конфигурация построения может иметь собственный целевой сервер или базу данных. Если необходимо выполнить развертывание на большом числе серверов или имена целевого сервера или базы данных постоянно меняются, следует прибегнуть к другому подходу. Эти подходы описаны ниже.

Создание нескольких конфигураций построения для развертывания на нескольких серверах или базах данных

  1. Откройте проект базы данных в Visual Studio.

  2. В меню Построение выберите Диспетчер конфигураций.

    Откроется диалоговое окно Диспетчер конфигураций.

  3. В списке Активная конфигурация решения щелкните <Создать>.

    Откроется диалоговое окно Создание конфигурации решения.

  4. В поле Имя введите имя конфигурации для первого сервера.

  5. Если свойства проекта уже настроены в конфигурации по умолчанию, в Копировать параметры из щелкните По умолчанию.

  6. Нажмите кнопку ОК.

  7. В списке Активная конфигурация решения щелкните <Создать>.

    Откроется диалоговое окно Создание конфигурации решения.

  8. В поле Имя введите имя конфигурации для второго сервера.

  9. Если свойства проекта уже настроены в конфигурации по умолчанию, в Копировать параметры из щелкните По умолчанию.

    Примечание

    Также можно задать имя базы данных и строку подключения для каждой именованной конфигурации.

  10. Нажмите кнопку Закрыть.

  11. Щелкните правой кнопкой мыши проект базы данных в обозревателе решений и выберите команду Свойства.

  12. Перейдите на вкладку Построение.

  13. В Конфигурация щелкните имя конфигурации первого сервера.

  14. Измените целевое подключение и имя базы данных согласно конфигурации первого сервера.

  15. В Конфигурация щелкните имя конфигурации второго сервера.

  16. Измените целевое подключение и имя базы данных согласно конфигурации второго сервера.

  17. В меню Файл выберите команду Сохранить выбранные элементы, чтобы сохранить параметры конфигурации.

    Теперь можно задать конфигурации на панели инструментов Стандартная и затем построить или развернуть конфигурацию.

Развертывание баз данных из командной строки с помощью MSBuild

  • Разверните скрипт построения, указав в окне Командная строка следующую команду (замените имя сервера и целевую конфигурацию соответствующим значениями).

    MSBuild /t:Deploy /p:Configuration=целевая_конфигурация имя_проекта_базы_данных.dbproj

    Примечание

    Чтобы выполнить развертывание на несколько серверов, необходимо переопределить свойство целевой строки подключения, задав в окне командной строки следующее: /p:TargetConnectionString="Data Source=имяСервера;Integrated Security=True;Pooling=False".Можно определить по одной конфигурации для каждого целевого сервера, затем указать конфигурацию, которую требуется развернуть.

Развертывание проекта базы данных из командной строки с помощью VSDBCMD

См. также

Задачи

Практическое руководство. Построение проекта базы данных для создания файла скомпилированной схемы (.dbschema)

Пошаговое руководство. Развертывание изменений в существующей базе данных, находящейся под контролем системы управления версиями

Основные понятия

Общие сведения о построении и развертывании базы данных

Общие сведения о параметрах проекта базы данных

Журнал изменений

Дата

Журнал

Причина

Июнь 2010

С учетом отзывов пользователей переработано введение и добавлены дополнительные сведения о порядке развертывания с помощью программы VSDBCMD.

Обратная связь от клиента.

Май 2011

Добавлено описание выполнения скрипта развертывания в редакторе Transact-SQL.

Обратная связь от клиента.