SSDT projects with external dependencies

andrew's Avatar

andrew

01 Jun, 2017 01:49 PM

Hi,

I am deploying a Dacpac using AppVeyor Deployment agent which has an external dependency as it does some work in the Master database. In the built output we have the database.dacpac and master.dacpac. If I deploy database.dacpac as an artefact, I get the error that the master.dacpac external dependency can't be found.

Is there any way of deploying this in AppVeyor using the deployment agent, or do I need to create a custom package with a deployment script which manually calls SQLPackage.exe?

Thanks.
Andrew.

  1. 1 Posted by Ilya Finkelshte... on 02 Jun, 2017 10:52 PM

    Ilya Finkelshteyn's Avatar

    Hi Andrew,

    We don't have this functionality out of the box, but I believe the following workaround might work:

    • in database.dacpac you set absolute path to the master.dacpac dependency, not relative to database.dacpac location. Look at this thread - you can use environment variable to switch this path between build and local machines.

    • Download master.dacpac to that absolute path in before-deploy.ps1.

    Let us know if this works for you.

    Ilya.

  2. 2 Posted by andrew on 05 Jun, 2017 04:06 PM

    andrew's Avatar

    Hi,

    I got it working in the end by zipping up the dacpacs, adding a deploy.ps1 to call SQLPackage.exe and deploying it in AppVeyor using the application settings and environment variables for connection string etc.

    Andrew.

  3. 3 Posted by Ilya Finkelshte... on 05 Jun, 2017 04:09 PM

    Ilya Finkelshteyn's Avatar

    Good, thank you for update!

  4. Ilya Finkelshteyn closed this discussion on 25 Aug, 2018 02:17 AM.

Comments are currently closed for this discussion. You can start a new one.

Keyboard shortcuts

Generic

? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac