Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:✅базе данных 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.
Необходимые компоненты
- Вам нужна существующая емкость Fabric. Если вы этого не сделали, запустите пробную версию Fabric.
- Убедитесь, что вы включите базу данных SQL в параметрах клиента Fabric.
- Создайте новую рабочую область или используйте существующую рабочую область Fabric.
- Создайте или используйте существующую базу данных SQL в Fabric. Если у вас еще нет одного, создайте новую базу данных SQL в Fabric.
- Установите пакет SDK для .NET 8.
Настройка
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.
При использовании
.bacpac
из среды Azure или SQL Server может потребоваться изменить исходную базу данных, чтобы она соответствовала среде базы данных SQL в T-SQL Fabric. Смотрите извлечение и публикация переносимости для альтернативного метода, который позволяет свойствам SqlPackage пропускать некоторые неподдерживаемые объекты.Создайте новую базу данных SQL в Fabric как обычно с помощью интерфейса Fabric.
Скопируйте строка подключения из параметров.
Используйте команду импорта из терминала в папке 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".
Извлечение и публикация
Это .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