我试图创建bacpac文件以将我的数据库导出到azure
在创建导出包(sqlpackage /a:Export
)吗?
答案 0 :(得分:3)
不,遗憾的是,在导出时无法忽略用户。
另外,您可以生成带有数据的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-a-new-database-migration-service-private-preview/
答案 1 :(得分:0)
此功能旨在支持将数据库迁移到Azure的过程。因此推理它只支持Azure支持的数据库工件。
,不允许使用Windows用户,文件组和一些提示(不考虑WITH弹簧)。对我有用的一个工作流程概述如下。
导出数据库的数据库应用程序项目(dacpac文件)。
将其导入Visual Studio(至少是2013版)。
将目标平台更改为Azure SQL数据库(我不确定V12附属物)
修复所有错误和警告。
可选择考虑编写脚本以删除此时可以删除的任何数据。您可能还希望为迭代测试生成一个非常小的版本。
将数据库的备份(从旧的老式BAK文件)恢复到其他位置。
将Azure更正后的项目的dacpac发布到已恢复的数据库。
从中生成Bacpac。
一旦你有一个bacpac文件,你应该能够将它推广到云端
显然,这将是一个迭代学习过程,其中一些步骤需要多次尝试才能正确。