8

我正在尝试创建一个 bacpac 文件以将我的数据库导出到 azure。
在创建导出包()时,是否有让它忽略用户sqlpackage /a:Export

4

2 回答 2

4

不,不幸的是,没有选项可以在导出时忽略用户。

或者,您可以生成一个包含数据的 dacpac 文件(sqlpackage /a:extract /p:ExtractAllTableData=true)并在发布时忽略用户......但这仅适用于原始数据库,因为 dacpacs 跳过大多数 Azure 导入细节(例如首先发布存储过程以利用延迟名称解析)。

我猜您想忽略用户,因为您的数据库包含一些映射到 Windows 登录名的用户,并且您想避免生成仅包含与 Azure SQL DB 兼容的对象的新版本数据库。如果是这样,您可能有兴趣尝试 Azure SQL 数据库迁移服务的私人预览版:https ://blogs.technet.microsoft.com/dataplatforminsider/2017/04/25/get-to-cloud-faster-with-一个新的数据库迁移服务私有预览/

于 2017-05-26T22:44:25.460 回答
0

此功能旨在支持将数据库迁移到 Azure 的过程。因此,推理认为它仅支持 Azure 支持的数据库人工制品。不允许使用 Windows 用户、文件组和一些提示(不带 WITH 的 nolock)。

一种对我有用的工作流程可以概述如下。

导出数据库的数据库应用程序项目(dacpac 文件)。

将其导入 Visual Studio(至少 2013 版)。

将目标平台更改为 Azure SQL 数据库(我不确定 V12 附件)

修复所有错误和警告。

(可选)考虑编写脚本以删除此时可以删除的任何数据。您可能还想为迭代测试生成一个非常小的版本。

将数据库的备份(从良好的老式 BAK 文件)还原到其他位置。

将 Azure 更正项目的 dacpac 发布到恢复的数据库上。

从中生成 Bacpac。

一旦你有一个 bacpac 文件,你应该能够将它提升到云端

显然,这将是一个迭代学习过程,其中一些步骤需要多次尝试才能正确完成。

于 2018-03-13T15:08:25.683 回答