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

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

Настройка проекта базы данных для локального развертывания.

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

Подробные сведения о конфигурации развертывания

Перед развертыванием проекта в изолированной среде разработки следует рассмотреть перечисленные ниже вопросы.

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

  • Возможно, базы данных всегда нужно будет создавать заново из-за отсутствия производственных данных, которые необходимо сохранить.

  • Возможно, необходимо развернуть свойства базы данных, чтобы параметры среды разработки совпадали с параметрами целевой тестовой или производственной среды.

  • Возможно, не следует выполнять резервное копирование базы данных, так как это увеличит затраты на развертывание и не имеет смысла, поскольку база данных создается заново при каждом развертывании.

  • Возможно, не нужно блокировать развертывание в случае вероятности потери данных из-за создания тестовых данных вместо работы с производственными. Если внесенные изменения предположительно не должны вызвать потерю данных, возможно, нужно будет заблокировать развертывание, чтобы проверить это предположение.

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

Переменные команд SQL

При развертывании в изолированной среде разработки у переменных должны быть значения, соответствующие этой среде. Например, в среде разработки для сервис-брокеров или сертификатов служб могут понадобиться значения, отличные от значений, используемых в тестовой или производственной среде. Задав другой SQLCMDVARS-файл для изолированной среды разработки, можно избежать необходимости внесения изменений в значения этих переменных при изменении целей разработки. Такая практика позволяет также избавиться от необходимости задавать SQLCMDVARS-файл с помощью переменных MSBuild, чтобы получить особые значения для конкретной конфигурации. Для каждой развертываемой конфигурации может существовать отдельный SQLCMDVARS-файл.

Развертывание серверных проектов

При развертывании проекта базы данных развертываются объекты и параметры базы данных. При развертывании серверного проекта развертываются объекты, определенные в базе данных master, а параметры сервера остаются неизменными. Можно проигнорировать параметры сервера или проверить, совпадают ли значения некоторых или всех параметров целевого сервера со значениями, заданными в серверном проекте.

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

Развертывание ролей

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

Развертывание из командной строки

На компьютере без Visual Studio проект базы данных можно развернуть из командной строки, если установить следующие обязательные компоненты.

  • Microsoft .NET Framework версии 4

  • Управляющие объекты SQL Server (SMO)

    Эти объекты следует устанавливать на все компьютеры, на которых установлен сервер SQL Server.

Кроме этих обязательных компонентов, на этот компьютер следует также переместить перечисленные ниже файлы. Возможно, их нужно будет предварительно скопировать на USB-диск.

  • Результаты построения проекта базы данных (отладочная конфигурация или конфигурация построения)

  • Содержимое папки развертывания для Visual Studio

    Обычно путь к этой папке — [Program Files]\VSTSDB\Deploy.

  • Сборки для сервера SQL Server, выпуск Compact

После установки обязательных компонентов и перемещения файлов можно развернуть проект базы данных (в форме DBSCHEMA-файла) в целевой базе данных.

Справочные данные

В скрипт, выполняемый после развертывания в проекте базы данных, можно добавить операторы, чтобы заполнить одну или несколько таблиц справочными данными. Дополнительные сведения см. в разделе Добавление справочных данных в таблицы при развертывании базы данных.

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

Общие задачи

В таблице приведено описание стандартных задач, которые могут оказаться полезными при реализации этого сценария, и ссылки на более подробные сведения о выполнении этих задач.

Задача

Справочные разделы

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

Практическая работа. Выполнив вводные пошаговые инструкции, можно быстро освоиться с процессом в целом: от создания изолированной среды разработки до создания базового плана и выполнения последовательной разработки.

Развертывание только готовых объектов. Файлы, содержащие определения объектов базы данных, которые еще не готовы для развертывания или тестирования, можно исключить.

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

Настройка проекта для развертывания.

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

  • Сведениями развертывания можно управлять, изменяя файл, содержащий сведения о развертывании (DEPLOYMENTCONFIG).

  • Задав соответствующие значения переменных, можно настроить использование различных сервис-брокеров или сертификатов служб при каждом развертывании.

  • Можно указать, должны ли обновляться свойства базы данных и сервера при развертывании проекта, и какие значения эти свойства должны принимать.

Заполнение справочных таблиц или таблиц подстановки. При развертывании проекта базы данных можно добавить в таблицы справочные данные. Это можно делать для таблиц, содержащих редко меняющиеся данные, например сведения о поставщике.

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

Развертывание проекта базы данных. Проект базы данных можно развернуть в Visual Studio с помощью MSBuild или воспользовавшись программой командной строки VSDBCMD, чтобы обновить целевую базу данных или сервер. Возможно, перед возвратом изменений в проект базы данных, нужно будет проверить успешность полного командного построения и развертывания.

Устранение неполадок. Здесь можно получить дополнительные сведения об устранении наиболее распространенные проблемы построения и развертывания, например проблем переименования проектов и сборок SQL среды CLR.

Следующие шаги

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

Связанные сценарии

Построение и развертывание баз данных в тестовой или производственной среде

Начало командной разработки баз данных

Начало командной разработки баз данных, ссылающихся на другие базы данных

Начало коллективной разработки баз данных, ссылающихся на общие серверные объекты

Начало командной разработки баз данных, ссылающихся на объекты SQLCLR

См. также

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

Создание и изменение объектов базы данных и сервера

Начало командной разработки базы данных