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 数据库的离线和更动态的开发周期。
先决条件
- 需要现有的 Fabric 容量。 如果没有,请启动 Fabric 试用版。
- 确保启用 Fabric SQL 数据库租户设置。
- 创建新的工作区或使用现有的 Fabric 工作区。
- 创建或使用现有的 Fabric SQL 数据库。 如果没有,请创建新的 Fabric SQL 数据库。
- 安装 .NET 8 SDK。
安装
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 数据库的备份中还原。
如果从 Azure SQL 数据库环境使用
.bacpac
,则你可能需要更改源数据库以满足 Fabric SQL 数据库 T-SQL 外围应用。像往常一样,通过 Fabric 界面在 Fabric 中创建新的 SQL 数据库。
从设置中复制连接字符串。
从终端使用 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
是 .bacpac
,sourceconnectionstring
可以在 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 导出。
提取并发布
.dacpac
是一个数据库架构模型文件,其中包含源数据库中表、存储过程和其他对象的定义。
SqlPackage 能够将 .dacpac
部署到新的(空)数据库或以增量方式更新现有数据库以匹配所需的 .dacpac
状态。
- 提取从现有数据库创建
.dacpac
或 sql 文件。 - 发布将
.dacpac
部署到数据库。
SqlPackage 发布语法类似于导入/导出命令。