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


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

Применимо к:SQL ServerБаза данных SQL AzureУправляемый экземпляр SQL AzureБаза данных SQL в Microsoft Fabric

Скрипты перед развертыванием и после развертывания — это скрипты SQL, включенные в проект для выполнения во время развертывания. Скрипты предварительного и последующего развертывания включены в .dacpac, но они не компилируются и не проверяются на соответствие модели объектов базы данных. Скрипт предустановки выполняется перед выполнением плана развертывания, но план развертывания рассчитывается до выполнения скрипта. Скрипт постразвёртывания выполняется после завершения плана развертывания.

Пример и синтаксис файла проекта SQL.

Файл проекта SQL может иметь один скрипт предразвертывания и один скрипт постразвертывания.

Следующий пример из файла проекта SQL добавляет файл prep-db.sql как скрипт для предварительного развертывания.

...
  <ItemGroup>
    <PreDeploy Include="prep-db.sql" />
  </ItemGroup>

Пример ниже из файла SQL проекта добавляет файл populate-app-settings.sql как сценарий после развертывания.

...
  <ItemGroup>
    <PostDeploy Include="populate-app-settings.sql" />
  </ItemGroup>
</Project>

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

:r .\scripts\script1.sql
:r .\scripts\script2.sql

Файлы должны быть исключены из построения модели базы данных, установив свойство Build Action на Remove в свойствах файла в Visual Studio или добавив запись для файла в файле .sqlproj с атрибутом Build, установленным на Remove. При построении проекта SQL дополнительные файлы объединяются в их ссылки на скрипт предварительного развертывания или после развертывания в .dacpacMicrosoft.Build.Sql пакете SDK для проекта.

...
  <ItemGroup>
    <Build Remove="scripts\script1.sql" />
    <Build Remove="scripts\script2.sql" />
  </ItemGroup>
</Project>

В SDK-стиль SQL проектах добавление записи Build Remove="path\file.sql" полностью удаляет файл из проекта, и он больше не отображается в окне проекта Visual Studio Code. Чтобы файл оставался видимым, но исключался из компиляции модели, добавьте его еще раз как элемент None.

...
  <ItemGroup>
    <Build Remove="scripts\script1.sql" />
    <None Include="scripts\script1.sql" />
    <Build Remove="scripts\script2.sql" />
    <None Include="scripts\script2.sql" />
  </ItemGroup>
</Project>

Это предотвращает компиляцию файла в рамках модели базы данных, сохраняя его видимым в проекте.

Tip

После сборки проекта можно проверить скрипты предварительного развертывания и после развертывания, изменив расширение файла .dacpac на .zip и разархивировав .zip в папку. Один .sql файл присутствует для сценариев на этапе предварительного и постразвертывания, и он должен содержать весь Transact-SQL-код всех ссылочных файлов в соответствующем SQL-проекте.

Добавление скриптов перед развертыванием и после развертывания

В Solution Explorer щелкните правой кнопкой мыши по проекту и выберите Добавить>Скрипт. Выберите скрипт предварительного развертывания или скрипт после развертывания.

Файл скрипта добавляется в проект и открывается в редакторе запросов, где вы можете завершить скрипт. Этот скрипт будет выполняться до или после выполнения плана развертывания при каждом развертывании проекта.

В обозревателе решений щелкните правой кнопкой мыши узел проекта и выберите "Добавить>новый элемент". Откроется диалоговое окно «Добавить новый элемент», выберите «Показать все шаблоны»>, затем выберите «Таблица» и выберите «Скрипт предварительного развертывания» или «Скрипт постразвертывания».

Файл скрипта добавляется в проект и открывается в редакторе запросов, где вы можете завершить скрипт. Этот скрипт будет выполняться до или после выполнения плана развертывания при каждом развертывании проекта.

В представлении проектов баз данных Visual Studio Code или Azure Data Studio щелкните проект правой кнопкой мыши и выберите команду "Добавить скрипт предварительного развертывания " или "Добавить скрипт после развертывания". Укажите имя скрипта без расширения файла.

Файл скрипта добавляется в проект и открывается в редакторе запросов, где вы можете завершить скрипт. Этот скрипт будет выполняться до или после выполнения плана развертывания при каждом развертывании проекта.

Измените .sqlproj файл непосредственно, чтобы добавить скрипты перед развертыванием или после развертывания. Добавьте элемент <PreDeploy> или <PostDeploy> в раздел <ItemGroup> файла .sqlproj.

Например, чтобы добавить скрипт scripts\before-script.sql в наш проект в качестве скрипта для преддеплоймента:

...
  <ItemGroup>
    <PreDeploy Include="scripts\before-script.sql" />
  </ItemGroup>

Этот скрипт scripts\before-script.sql выполняется перед выполнением плана развертывания при каждом развертывании проекта.