Извлечение DACPAC из основной базы данных - PullRequest
0 голосов
/ 04 марта 2019

Я работаю над переносом существующей базы данных Azure V12 в проект SSDT, чтобы мы могли начать использовать управление исходным кодом и конвейеры CI.

Проблема, с которой я борюсь, заключается в том, что есть ссылка на "sys.fn_get_audit_file "в некотором коде, и это выдает ошибку" неразрешенная ссылка ".Я не хочу, чтобы при сборке проекта игнорировались какие-либо ошибки, поэтому я пытался решить эту проблему должным образом.Добавление ссылки на базу данных в master не решает проблему, и кажется, что в файле master.dacpac, поставляемом с SSDT, нет определения (в model.xml) этой функции sys.Я проверил все версии файлов master.dacpac, доступные в папках VS, и даже попробовал предварительный просмотр VS 2019, чтобы посмотреть, будет ли с ним новая версия master.dacpac.

Копаясь в Интернете, я понял, что другие людианалогичные проблемы с объектами, отсутствующими в master.dacpac, и предлагаемое решение состояло в том, чтобы отредактировать model.xml, повторно упаковать и исправить контрольную сумму.Я бы предпочел не идти по этому пути, поэтому я попытался использовать SqlPackage для извлечения DACPAC из главной базы данных в Azure, но в извлеченной модели почти нет определений объектов.

Есть предложения?

1 Ответ

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

Кто-то должен поднять это с командой в Microsoft - я знаю, что они контролируют здесь, так что, может быть, кто-то может помочь ??

В то же время, похоже, что fn_get_audit_file поддерживается на Azure, это в соответствии сДокументация в любом случае.

Я создал пару dacpac, которые вы можете использовать, есть старая версия Azure:

https://the.agilesql.club/assets/dacpacs/azure/master.dacpac

и версия v12:

https://the.agilesql.club/assets/dacpacs/azurev12/master.dacpac

То, что я сделал, взяло с моего компьютера существующие мастер-файлы Azure (vs 2017) и добавило элемент sys.fn_get_audit_sql из не-лазурной версии.

Для этого я использую 7zip для извлечения model.xml, а затем редактирую xml-файл и копирую файл model.xml обратно в dacpac.

В результате получается модель с неверной контрольной суммой, поэтому у меня есть небольшое приложение, которое переписывает origin.xml с правильной контрольной суммой. Я положу это приложение на github, если кто-то захочет, но этоверсия этого:

https://github.com/GoEddie/Dacpac-References/tree/master/src/GOEddie.Dacpac.References

См. https://github.com/GoEddie/Dacpac-References/blob/master/src/GOEddie.Dacpac.References/ModelChecksumWriter.cs

Когда у меня были master.dacpac, я скопировал их обратно в VS 2017:

C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Professional \ Common7 \ IDE \ Extensions \ Microsoft \ SQLDB \ Extensions \ SqlServer \ AzureV12 C: \ Программные файлы (x86) \ Microsoft Visual Studio \ 2017 \ Commnuity \Common7 \ IDE \ Extensions \ Microsoft \ SQLDB \ Extensions \ SqlServer \ AzureV12 C: \ Program Files (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ Extensions \ Microsoft \ SQLDB \ Extensions \ SqlServer \ AzureV12

(зависит от издания)

Это позволяет мне использовать fn_get_audit_sql внутри проекта azure / azurev12: ​​

enter image description here

Надеюсьпомогает!

ред

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...