Ошибка: ссылка на внешние элементы из источника с именем «master.dacpac» не может быть разрешена - PullRequest
0 голосов
/ 31 августа 2018

Я создаю базу данных dacpac, используя sqlpackage на машине с Windows. Проект содержит ссылку на master.dacpac

Я перевожу dacpac на машину с Linux (mssql-server-linux образ докера) и восстанавливаю базу данных.

deploy-database.sh

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

Ошибка:

Не предоставлен файл для ссылки master.dacpac; Развертывание может закончиться неудачей. Когда был создан пакет, исходный файл ссылки находится C: $ (путь машины Windows) \ MASTER.DACPAC. Инициализация развертывание (Ошибка) Произошла ошибка при создании плана развертывания. Развертывание не может продолжаться. Ошибка SQL0: ссылка на внешние элементы из источник с именем 'master.dacpac' не может быть разрешен, потому что нет такой источник загружен. Предупреждение SQL72025: файл не был предоставлен для ссылка master.dacpac; Развертывание может закончиться неудачей. Когда посылка была создан, исходный файл ссылки был расположен C: $ (Windows Machine путь) \ MASTER.DACPAC.

Произошла ошибка при добавлении ссылок. Развертывание не может Продолжить. Команда '/ bin / sh -c sh /deploy-database.sh' вернула ненулевой код: 1

Я попытался добавить master.dacpac в проект напрямую, а также скопировать его в образ докера, но возникает та же ошибка.

Как я могу восстановить dapac в среде linux со ссылкой на master.dacpac?

1 Ответ

0 голосов
/ 25 марта 2019

Я попытался добавить master.dacpac в проект напрямую, а также копирование его в образ докера, но возникает та же ошибка.

Убедитесь, что файл master.dacpac находится в текущем рабочем каталоге. Поскольку ваш файл MyDb.dacpac существует в корневом каталоге, скопируйте туда файл master.dacpac и выполните команду sqlpackage в контексте корневого каталога.

В приведенном ниже примере указывается абсолютная ссылка на sqlpackage (в случае, если она еще не на вашем пути) и относительная ссылка на ваш пользовательский dacpac (хотя абсолютная ссылка тоже будет работать).

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