M1芯片Docker环境下Azure SQL Edge无法导入.bacpac文件求助
Azure SQL Edge(Docker/M1)导入.bacpac的替代方案
Azure SQL Edge本身不支持contained database authentication这个配置项,所以没法通过sp_configure开启,以下是可行的替代解决办法:
导入时修改包含类型设置
在Azure Data Studio的导入向导里:- 进入“数据库设置”步骤
- 找到“包含类型”选项,设置为无或部分包含(优先选“无”)
- 继续完成导入流程即可
手动修改bacpac文件配置
如果bacpac是从包含数据库导出的,可直接修改文件内容:- 将.bacpac后缀改为.zip,解压到本地文件夹
- 打开文件夹内的
model.xml文件,搜索<ContainmentType>标签 - 将标签内的值从
1(表示包含数据库)改为0(表示非包含数据库) - 保存文件后重新压缩为.zip,再改回.bacpac后缀
- 重新尝试导入
使用sqlpackage命令行工具导入
用命令行工具指定参数跳过包含数据库检查,同时适配arm64平台:sqlpackage /Action:Import /SourceFile:"你的bacpac文件路径" /TargetConnectionString:"Server=localhost,1433;Database=目标数据库名;User Id=sa;Password=你的SA密码;" /p:AllowIncompatiblePlatform=True /p:IgnoreContainment=true其中
/p:IgnoreContainment=true会强制忽略包含数据库的配置要求,/p:AllowIncompatiblePlatform=True解决M1芯片arm64架构和SQL Server平台的兼容性问题
内容的提问来源于stack exchange,提问作者EtherealCodingPro
相关产品推荐
相关产品推荐

