Error: The reference to external elements from the source named 'master.dacpac' could not be resolved

孤街浪徒 提交于 2020-05-11 05:13:07

问题


I am building a database dacpac using sqlpackage on a windows machine. The project contains a reference to master.dacpac

I take the move the dacpac to a linux machine (mssql-server-linux docker image) and restore the database.

deploy-database.sh

# publish dacpac using sqlpackage
./sqlpackage/sqlpackage /Action:Publish /sf:"/MyDb.dacpac" /tu:sa /tp:Password1 /tdn:MyDb /tsn:localhost

Error:

No file was supplied for reference master.dacpac; deployment might fail. When package was created, the original referenced file was located C:$(windows machine path)\MASTER.DACPAC. Initializing deployment (Failed) An error occurred during deployment plan generation. Deployment cannot continue. Error SQL0: The reference to external elements from the source named 'master.dacpac' could not be resolved, because no such source is loaded. Warning SQL72025: No file was supplied for reference master.dacpac; deployment might fail. When package was created, the original referenced file was located C:$(windows machine path)\MASTER.DACPAC.

An error occurred while adding references. Deployment cannot continue. The command '/bin/sh -c sh /deploy-database.sh' returned a non-zero code: 1

I have tried adding master.dacpac to the project directly and also copying it to the docker image but the same error occurs.

How can I restore a dapac in a linux environment that has a reference to master.dacpac?


回答1:


I have tried adding master.dacpac to the project directly and also copying it to the docker image but the same error occurs.

Make sure master.dacpac file is in the current working directory. Since your MyDb.dacpac file exists in the root directory, copy the master.dacpac file there and execute the sqlpackage command in the context of the root directory.

The example below specifies an absolute reference to sqlpackage (in case it's not already in your path) and a relative reference to your user dacpac (although an absolute reference will work too).

cd /
/sqlpackage/sqlpackage /Action:Publish /sf:"MyDb.dacpac" /tu:sa /tp:Password1 /tdn:MyDb /tsn:localhost


来源:https://stackoverflow.com/questions/52110557/error-the-reference-to-external-elements-from-the-source-named-master-dacpac

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!