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


SqlPackage для базы данных SQL в Microsoft Fabric

Применимо к:базе данных SQL в Microsoft Fabric

В этом руководстве описано, как работать с SqlPackage в базе данных SQL в Fabric.

SqlPackage — это интерфейс командной строки, предоставляющий переносимость базы данных и развертывания базы данных.

  • Переносимость (импорт/экспорт) базы данных, управляемой в Azure или в Fabric, обеспечивает возможность переноса ваших данных на другие платформы, если вы захотите выполнить миграцию в будущем. — Переносимость включает перемещение в и из SQL Server, базы данных Azure SQL, Управляемого экземпляра Azure SQL и базы данных SQL в Fabric с помощью автономных копий базы данных (.bacpac или .dacpac файлов).

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

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

Необходимые компоненты

Настройка

SqlPackage доступен для Windows, macOS и Linux в качестве средства dotnet. Ее можно установить с помощью следующей команды:

dotnet tool install --global Microsoft.SqlPackage

Как глобальное средство dotnet, SqlPackage доступен в терминале как sqlpackage из любой папки.

Импорт базы данных с помощью SqlPackage

Это .bacpac переносимая копия базы данных, полезная для некоторых сценариев миграции и тестирования. Его можно импортировать.bacpac в пустую базу данных SQL.

Примечание.

Это .bacpac не является резервной копией или заменой для возможностей резервного копирования и восстановления. Дополнительные сведения о резервных копиях для базы данных SQL в Fabric см. в статье "Автоматическое резервное копирование в базе данных SQL" в Microsoft Fabric и восстановление из резервной копии в базе данных SQL в Microsoft Fabric.

  1. При использовании .bacpac из среды Azure или SQL Server может потребоваться изменить исходную базу данных, чтобы она соответствовала среде базы данных SQL в T-SQL Fabric. Смотрите извлечение и публикация переносимости для альтернативного метода, который позволяет свойствам SqlPackage пропускать некоторые неподдерживаемые объекты.

  2. Создайте новую базу данных SQL в Fabric как обычно с помощью интерфейса Fabric.

  3. Скопируйте строка подключения из параметров.

    Снимок экрана: портал Fabric, на котором показана страница строк подключения базы данных SQL.

  4. Используйте команду импорта из терминала в папке sqlpackage. Укажите владельца <servername> и <database_name>.

    sqlpackage /action:import /sourcefile:"C:\DatabaseName.bacpac" /targetconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive"
    
    • Замените строка подключения из диалогового окна параметров базы данных SQL.
    • Замените sourcefile значение .bacpac именем (DatabaseName) и location на локальном компьютере.

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

Экспорт базы данных с помощью SqlPackage

.bacpac Экспорт — это обратная операция, где находится targetfile ваш .bacpac объект и sourceconnectionstring вы можете найти в диалоговом окне параметров базы данных SQL, как показано в предыдущем примере. Укажите владельца <servername> и <database_name>. Например:

sqlpackage /action:export /targetfile:"C:\DatabaseName.bacpac" /sourceconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive"

Дополнительные сведения об экспорте см. в разделе "Экспорт SqlPackage".

Извлечение и публикация

Схема того, как проекты базы данных SQL могут перемещать изменения схемы.

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

SqlPackage может развертывать .dacpac новую (пустую) базу данных или постепенно обновлять существующую базу данных в соответствии с требуемым .dacpac состоянием.

  • Извлечение создает .dacpac файлы или файлы SQL из существующей базы данных.
  • Публикация развертывает базу .dacpac данных.

SqlPackage синтаксис публикации и синтаксис извлечения аналогичен командам импорта и экспорта.

Предупреждение

Использование SqlPackage для развертывания проекта SQL или .dacpac в базе данных SQL в Fabric рекомендуется. Развертывание .dacpac из Visual Studio может быть неудачным.

Чтобы развернуть .dacpac, созданную из базы данных SQL Azure, SQL Server или проекта SQL, предназначенного для платформы, отличной от базы данных SQL в Fabric, добавьте свойство /p:AllowIncompatiblePlatform=true в команду публикации SqlPackage.

Извлечение и публикация для переносимости

Несмотря на то что команды импорта и экспорта SqlPackage сосредоточены на переносимости данных в формате .bacpac, команды извлечения и публикации могут переносить данные в формате .dacpac. Свойства извлечения и публикации можно использовать для управления поведением операций извлечения и публикации и обеспечения большей гибкости для преобразований между платформами.

Чтобы извлечь.dacpac и включить данные, используйте /p:ExtractAllTableData=true свойство. Операция извлечения создает объект .dacpac , содержащий как схему, так и данные из исходной базы данных. Это свойство /p:ExtractReferencedServerScopedElements=false исключает элементы с областью действия сервера, которые не поддерживаются в базе данных SQL в среде Fabric. Следующая команда извлекает .dacpac, содержащий данные из существующей базы данных SQL в Fabric.

sqlpackage /action:extract /sourceconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive" /targetfile:"C:\extracted.dacpac" /p:ExtractAllTableData=true  /p:ExtractReferencedServerScopedElements=false

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

  • /p:AllowIncompatiblePlatform=true позволяет развернуть объект .dacpac , извлеченный из другой платформы (например, База данных SQL Azure, SQL Server).
  • /p:ExcludeObjectTypes=Logins;Users исключает типы объектов, которые могут столкнуться с проблемами совместимости при публикации в базе данных SQL в Fabric. Полный список типов объектов, которые можно исключить, см. в публикации SqlPackage.

Прежде чем публиковать .dacpac в базе данных SQL в Fabric, аналогично команде импорта SqlPackage, необходимо сначала создать эту базу данных в Fabric. Базу данных можно создать с помощью портала Fabric или другого интерфейса Fabric. Следующая команда публикует извлеченные .dacpac данные в пустую базу данных SQL в Fabric:

sqlpackage /action:publish /sourcefile:"C:\extracted.dacpac" /targetconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive" /p:AllowIncompatiblePlatform=true /p:ExcludeObjectTypes=Logins;Users