Microsoft Fabric SQL 数据库的 SqlPackage

适用于:✅Microsoft Fabric 中的 SQL 数据库

在本教程中,你将了解如何处理 Fabric SQL 数据库中的 SqlPackage。

SqlPackage 是一种 CLI,提供数据库可移植性和数据库部署。

  • 在 Azure 或 Fabric 中管理的数据库的可移植性(导入/导出)可确保你的数据在未来需要迁移时可移植到其他平台,包括 SQL Server 或 Azure SQL 托管实例。
  • 相同的可移植性还通过自包含的数据库副本 (.bacpac) 以及导入/导出操作,支持某些迁移场景。

SqlPackage 还可以轻松实现对数据库对象的增量更改部署(例如,在表中添加新列、修改现有存储过程等)。

  • SqlPackage 可以提取包含数据库中对象定义的 .dacpac 文件,并发布 .dacpac 文件,将该对象状态应用到新的或现有的数据库。
  • 发布操作还与 SQL 项目集成,支持 SQL 数据库的离线和更动态的开发周期。

先决条件

安装

SqlPackage 作为 dotnet 工具适用于 Windows、macOS 和 Linux。 可以使用以下命令安装它:

dotnet tool install --global Microsoft.SqlPackage

作为一个全局 dotnet 工具,SqlPackage 在终端中作为任何文件夹中的 sqlpackage 提供。

使用 SqlPackage 导入数据库

.bacpac 是数据库的一个可移植副本,适用于某些迁移和测试场景。 你可以将该 .bacpac 导入到一个空的 SQL 数据库。

注意

.bacpac 不是备份,也不是备份/还原功能的替代功能。 有关 Fabric SQL 数据库备份的更多信息,请参阅 Microsoft Fabric SQL 数据库的自动备份从 Microsoft Fabric SQL 数据库的备份中还原

  1. 如果从 Azure SQL 数据库环境使用 .bacpac,则你可能需要更改源数据库以满足 Fabric SQL 数据库 T-SQL 外围应用

  2. 像往常一样,通过 Fabric 界面在 Fabric 中创建新的 SQL 数据库

  3. 从设置中复制连接字符串。

    来自 Fabric 门户的屏幕截图,其中显示了 SQL 数据库的连接字符串页。

  4. 从终端使用 sqlpackage 文件夹中的 import 命令。 提供你的所有者 <servername><database_name>

    sqlpackage /action:import /sourcefile:"C:\DatabaseName.bacpac" /targetconnectionstring:"Data Source=tcp:<server_name>.database.windows.net,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.bacpacsourceconnectionstring 可以在 SQL 数据库设置对话框中找到,如前面的示例所示。 提供你的所有者 <servername><database_name>。 例如:

sqlpackage.exe /action:export /targetfile:"C:\DatabaseName.bacpac" /sourceconnectionstring:"Data Source=tcp:<server_name>.database.windows.net,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 能够将 .dacpac 部署到新的(空)数据库或以增量方式更新现有数据库以匹配所需的 .dacpac 状态。

  • 提取从现有数据库创建 .dacpac 或 sql 文件。
  • 发布.dacpac 部署到数据库。

SqlPackage 发布语法类似于导入/导出命令。