Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Приложение уровня данных (DAC) — это автономная единица всей модели базы данных и переносимая в артефакт, известный как пакет DAC или .dacpac
. Рекомендуется просмотреть содержимое .dacpac
перед развертыванием в рабочей среде и проверить действия обновления перед модернизацией существующего приложения уровня данных (DAC). Проверка содержимого .dacpac
особенно важна при развертывании пакетов, которые не были разработаны в вашей организации. В этой статье описано несколько способов распаковки модели базы данных из .dacpac
для Windows, macOS и Linux.
Предупреждение
Настоятельно рекомендуется не развертывать .dacpac
из неопознанных или ненадежных источников. Такие daCs могут содержать вредоносный код, который может выполнить непреднамеренный код или вызвать ошибки, изменив схему. Прежде чем использовать DAC из неизвестного или ненадежного источника, разверните его в изолированном тестовом экземпляре ядра СУБД, распакуйте DAC и изучите код, например хранимые процедуры или другой определяемый пользователем код.
Варианты проверки содержимого .dacpac
включают:
- импорт
.dacpac
в проект SQL в Visual Studio - использование утилиты командной строки SqlPackage для извлечения
.dacpac
- распаковка файла для просмотра содержимого XML
- развертывание
.dacpac
в тестовом окружении
Распаковка .dacpac
непосредственно после извлечения из базы данных для более эффективного просмотра определений объектов осуществляется с помощью Extract в SqlPackage со свойством /p:ExtractTarget=File
. Результат непосредственно создает один файл .sql
, содержащий определения объектов из указанной исходной базы данных.
Импорт DACPAC в проект SQL в Visual Studio
Импорт .dacpac
в проект SQL в Visual Studio приводит к преобразованию .dacpac
в файлы .sql и их упорядочению в папки. После импорта скрипты после развертывания и скрипты предварительного развертывания из .dacpac
отображаются в обозревателе решений.
Установите sql Server Data Tools в составе Visual Studio и создайте новый проект SQL.
В обозревателе решений щелкните правой кнопкой мыши пустой проект и выберите импортировать, а затем из пакета приложений уровня данных.
Распакуйте DACPAC, чтобы просмотреть содержимое XML
Распаковка файла .dacpac
приводит к тому, что необработанное XML-содержимое доступно для просмотра в текстовом редакторе. При поиске определенного компонента в .dacpac
проверка содержимого XML может быть быстрым методом для доступа к информации.
Измените расширение файла
.dacpac
на.zip
.Распакуйте файл .zip с помощью служебной программы, предоставленной операционной системой. Чтобы распакуировать файл из командной строки, выполните следующие действия.
unzip AdventureWorks.dacpac
Полученное содержимое включает
DacMetadata.xml
,Origin.xml
иmodel.xml
.
Развертывание DACPAC в тестовом экземпляре
Развертывание .dacpac
в тестовом экземпляре приводит к тому, что содержимое .dacpac
публикуется в базе данных, где объекты можно просматривать из различных подключенных средств базы данных.
Заметка
Одним из вариантов локального создания тестового экземпляра является SQL Server в Docker.
Развертывание DACPAC с помощью Azure Data Studio
Установите расширение SQL Server dacpac в Azure Data Studio.
Подключитесь к нужному экземпляру. Щелкните правой кнопкой мыши узел сервера и выберите мастер приложений уровня данных в меню.
Выберите в мастере параметр развертывания и установите параметр целевой базы данных на создать базу данных.
После развертывания перейдите к базе данных на подключенном сервере в обозревателе объектов, чтобы просмотреть объекты базы данных.
Развертывание DACPAC с помощью SqlPackage
Установите SqlPackage.
Используйте интерфейс командной строки SqlPackage для публикации файла
.dacpac
в нужный экземпляр. Примеры команд для публикации.dacpac
в базе данных можно найти в примерах публикации SqlPackage .
Другие средства с возможностями развертывания DACPAC
Помимо Azure Data Studio и SqlPackage, многие другие средства можно использовать для развертывания .dacpac
в базе данных. Ниже приведены некоторые примеры:
- SQL Server Management Studio
- Visual Studio: SQL Server Data Tools
Вызов метода Unpack()
API Microsoft.SqlServer.DacFx .NET предоставляет метод для распаковки.dacpac
в папку, который можно использовать для программной распаковки .dacpac
в папку, как показано. В следующем примере приложение .NET принимает два аргумента, путь к файлу .dacpac
и путь к выходной папке, а результатом является содержимое .dacpac
преобразовано в 3 XML-файла и один файл .sql, содержащий все объекты базы данных.
using Microsoft.SqlServer.Dac;
namespace DacUnpack
{
class Program
{
static void Main(string[] args)
{
var dacpacPath = args[0];
var outputPath = args[1];
if (!Directory.Exists(outputPath))
{
Directory.CreateDirectory(outputPath);
}
Console.WriteLine("Unpacking {0} to {1}", dacpacPath, outputPath);
using(DacPackage dacpac = DacPackage.Load(dacpacPath))
{
dacpac.Unpack(outputPath);
}
}
}
}