Published on

September 12, 2017

Управление Dacpacs с помощью SQL Server

Когда речь идет об автоматизации управления Dacpacs, у вас есть несколько вариантов в SQL Server. В этой статье мы рассмотрим два популярных метода: SQLPackage и DacFx.

SQLPackage

SQLPackage – это утилита командной строки, которая поставляется с SQL Server Data Tools (SSDT). Ее основное назначение – управление Dacpacs, которые представляют собой пакеты, содержащие схему и данные базы данных SQL Server.

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

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

DacFx

DacFx, или Data-tier Application Framework, является компонентом, который предоставляет услуги жизненного цикла приложения для разработки и управления базами данных в SQL Server и Azure SQL Databases.

В отличие от SQLPackage, DacFx позволяет управлять Dacpacs с использованием C# или PowerShell. Фактически, сам SQLPackage использует “Microsoft.SqlServer.Dac.dll” из DacFx. Это означает, что вы можете использовать DacServices в своем сценарии PowerShell для развертывания Dacpac и генерации скрипта изменений базы данных.

Вот пример сценария PowerShell, который разворачивает Dacpac с использованием DacServices:


param (
    [string]$databaseServer,
    [string]$databaseName,
    [string]$dacpac,
    [string]$profile
)

$dacServices = New-Object Microsoft.SqlServer.Dac.DacServices("Data Source=$databaseServer;Initial Catalog=$databaseName;Integrated Security=SSPI;")
$dacServices.Deploy($dacpac, $databaseName, $true, $profile)
$dacServices.GenerateDeployScript($dacpac, $databaseName, $true, $profile) | Out-File "DatabaseChanges.sql"

Этот сценарий принимает четыре аргумента: сервер базы данных, имя базы данных, путь к файлу Dacpac и профиль для развертывания. Он разворачивает изменения в указанной базе данных и создает скрипт изменений базы данных для справки.

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

Имейте в виду, что местоположение DLL DacFx может отличаться на вашей системе. Убедитесь, что обновили сценарий соответствующим образом.

Заключение

Как SQLPackage, так и DacFx предлагают мощные возможности для управления Dacpacs в SQL Server. Независимо от того, предпочитаете ли вы подход командной строки или более программный метод, эти инструменты обеспечивают гибкость и автоматизацию, необходимые для эффективного развертывания баз данных.

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

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.