2

我正在尝试在 Linux 上使用 SQLPackage 进行 dacpac 部署。

我的环境:

服务器:Ubuntu Linux 版本 16.04

SQL Server 2017 最新发布候选版本 RC1。

SQL Server 安装成功,我可以在 Ubuntu 上的 SQL Server 数据库上创建表。现在我正在尝试在 Linux 上实现 dacpac 部署。根据本文档

https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-export-import-with-sqlpackage

SQLPackage 可执行文件必须位于 /opt/mssql/bin。但事实并非如此。知道如何在 Linux 上安装 SQLPackage 吗?

当我检查 CTP 2.1 的旧版本时,我有那个 SqlPackage 可执行文件。RC 1 中是否遗漏了这一点?

4

2 回答 2

1

-关于从 SQL Server 2017 包中临时删除 sqlpackage-

目标是通过使用基于 .NET Core 的 DACFx API 的多操作系统版本的 sqlpackage 为客户提供 Linux、macOS 和 Windows 上的最佳 CLI 体验。

作为实现这一目标的权宜之计,我们在 Linux 上的 SQL2017 CTP 中提供了基于 Windows 的 sqlpackage 的早期预览版,以征求客户反馈。我们已经从 SQL2017 RC1 中删除了这个预览版的 sqlpackage。

sqlpackage 的多操作系统版本的工作正在进行中,但我目前无法分享发布日期。在此之前,您可以使用以下一种或多种替代方法在每次新运行图像时导入数据集:

1) 使用 sqlcmd CLI 工具将现有的 .bak 文件恢复到新映像中。https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools

2) 在 Windows 机器上运行 sqlpackage 以使用在新映像中运行的 SQL 2017。

3) 为您的数据库或特定表生成带有 CREATE + INSERT 语句的脚本。您可以在 Windows 上使用 SSMS 的 Generate Script 向导或新的基于 Python 的 mssql-scripter CLI(公共预览版)来生成脚本并将其检入源代码控制中(如果您愿意)。然后,您可以使用 sqlcmd CLI 工具在新映像中执行脚本。mssql-scripter的安装说明请看https://github.com/Microsoft/sql-xplat-cli中的README.md

如果您有更多问题或反馈,请发送电子邮件至 sanagama@microsoft.com,我们很乐意为您提供帮助。

于 2017-07-27T15:59:26.920 回答
1

正如@Lin Leng-MSFT 所提到的,从 RC1 开始,sqlpackage 已从安装包中删除。那就是说“SqlPackage 仍然可以从 Windows 远程在 Linux 上运行。”

于 2017-07-24T23:25:11.537 回答