Deploy SQL Server database project (SSDT) via command line

后端 未结 2 441
孤独总比滥情好
孤独总比滥情好 2020-12-05 06:21

I have a SQL Server Database Project targeting a SQL Server 2012 RC0 database. The project was created in Visual Studio 2010 + SQL Server Data Tools CTP4. (The project typ

相关标签:
2条回答
  • 2020-12-05 06:43

    If you are a masochist Microsoft also provide documentation on deploying the DACPAC via SMO, under the guise of 'using PowerShell'.

    Of course you can call sqlpackage from PowerShell too...

    0 讨论(0)
  • 2020-12-05 06:48

    Use sqlpackage.exe, located in C:\Program Files\Microsoft SQL Server\{version}\DAC\bin or C:\Program Files (x86)\Microsoft SQL Server\{version}\DAC\bin where {version} =110 (SQL Server 2012), 120 (SQL Server 2014), etc.

    Command line arguments:

    /Action:{Extract|Report|Publish|Script}  Specifies the action to be performed.
                                             (short form /a)
    
    /Quiet[+|-]                              Specifies whether detailed feedback is
                                             suppressed. Defaults to False. (short
                                             form /q)
    
    /OverwriteFiles[+|-]                     Specifies if sqlpackage.exe should
                                             overwrite existing files. Specifying
                                             false causes sqlpackage.exe to abort
                                             action if an existing file is
                                             encountered. Default value is True.
                                             (short form /of)
    
    /SourceServerName:<string>               Defines the name of the server hosting
                                             the source database. (short form /ssn)
    
    /SourceDatabaseName:<string>             Defines the name of the source
                                             database. (short form /sdn)
    
    /SourceUser:<string>                     For SQL Server auth scenarios, defines
                                             the SQL Server user to use to access
                                             the source database. (short form /su)
    
    /SourcePassword:<string>                 For SQL Server auth scenarios, defines
                                             the password to use to access the
                                             source database. (short form /sp)
    
    /SourceTimeout:<int>                     Specifies the timeout for establishing
                                             a connection to the source database in
                                             seconds. (short form /st)
    
    /SourceEncryptConnection[+|-]            Specifies if SQL encryption should be
                                             used for the source database
                                             connection. (short form /sec)
    
    /SourceTrustServerCertificate[+|-]       Specifies whether to use SSL to
                                             encrypt the source database connection
                                             and bypass walking the certificate
                                             chain to validate trust. (short form
                                             /stsc)
    
    /SourceConnectionString:<string>         Specifies a valid SQL Server/Azure
                                             connection string to the source
                                             database. If this parameter is
                                             specified it shall be used exclusively
                                             of all other source parameters. (short
                                             form /scs)
    
    /SourceFile:<string>                     Specifies a source file to be used as
                                             the source of action instead of a
                                             database. If this parameter is used,
                                             no other source parameter shall be
                                             valid. (short form /sf)
    
    /TargetServerName:<string>               Defines the name of the server hosting
                                             the target database. (short form /tsn)
    
    /TargetDatabaseName:<string>             Specifies an override for the name of
                                             the database that is the target of
                                             sqlpackage.exe Action. (short form
                                             /tdn)
    
    /TargetUser:<string>                     For SQL Server auth scenarios, defines
                                             the SQL Server user to use to access
                                             the target database. (short form /tu)
    
    /TargetPassword:<string>                 For SQL Server auth scenarios, defines
                                             the password to use to access the
                                             target database. (short form /tp)
    
    /TargetTimeout:<int>                     Specifies the timeout for establishing
                                             a connection to the target database in
                                             seconds. (short form /tt)
    
    /TargetEncryptConnection[+|-]            Specifies if SQL encryption should be
                                             used for the target database
                                             connection. (short form /tec)
    
    /TargetTrustServerCertificate[+|-]       Specifies whether to use SSL to
                                             encrypt the target database connection
                                             and bypass walking the certificate
                                             chain to validate trust. (short form
                                             /ttsc)
    
    /TargetConnectionString:<string>         Specifies a valid SQL Server/Azure
                                             connection string to the target
                                             database. If this parameter is
                                             specified it shall be used exclusively
                                             of all other target parameters. (short
                                             form /tcs)
    
    /TargetFile:<string>                     Specifies a target file (i.e., a
                                             .dacpac files) to be used as the
                                             target of action instead of a
                                             database. If this parameter is used,
                                             no other target parameter shall be
                                             valid. This parameter shall be invalid
                                             for actions that only support database
                                             targets. (short form /tf)
    
    /Properties:<string>                     A name value pair for a Publish
                                             property, {PropertyName}={Value}.
                                             Refer to the help for the Publish
                                             action for valid property names.
                                             (short form /p)
    
    /Variables:<string>                      Optional only if /Action:Publish is
                                             specified. Valid values for parameter
                                             name shall be SQL Command variables
                                             specified in the .dacpac file only.
                                             Parameter names specified that are not
                                             declared in the .dacpac shall result
                                             in an error. Valid command variable
                                             values shall be context-specific based
                                             on the command variable itself (e.g.,
                                             database name vs. schema names).
                                             (short form /v)
    
    /Profile:<string>                        Optional if /Action:Publish is
                                             specified. Valid value is a file path
                                             to a Publish Profile. A user shall be
                                             able to use a Publish Profile to
                                             define the collection of Publish
                                             Properties to use for a Publish
                                             episode. (short form /pr)
    
    /OutputPath:<string>                     Required if /Action:Report or
                                             /Action:Script is specified. Valid
                                             value is a file path to where the
                                             comparison report shall be written.
                                             (short form /op)
    
    @<file>                                  Read response file for more options.
    

    Example:
    sqlpackage.exe /Action:Publish /SourceFile:C:\DbProject\bin\Debug\DbProject.dacpac /TargetServerName:localhost /TargetDatabaseName:TestDb

    With target db details stored in a profile:
    sqlpackage.exe /Action:Publish /SourceFile:C:\DbProject\bin\Debug\DbProject.dacpac /Profile:C:\DbProject\LocalDb.publish.xml

    If you get the error "Unable to connect to target server" then make sure you are using the correct version of sqlpackage.exe (see here for more details).

    0 讨论(0)
提交回复
热议问题