SqlChangeAutomation.dll-Help.xml

<?xml version="1.0" encoding="utf-8"?>
<helpItems schema="maml" xmlns="http://msh">
  <!-- Cmdlet: Invoke-DatabaseBuild -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Invoke-DatabaseBuild</command:name>
      <command:verb>Invoke</command:verb>
      <command:noun>DatabaseBuild</command:noun>
      <maml:description>
        <maml:para>Builds a database project.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Invoke-DatabaseBuild cmdlet builds a database project by checking the database definition can be deployed to an empty databse. It the build is successful, the cmdlet creates an IProject object that represents the built project.</maml:para>
      <maml:para>The cmdlet will throw an exception if the project cannot be deployed to an empty database.</maml:para>
      <maml:para>By default, the cmdlet creates a temporary copy of the database on LocalDB. Alternatively, you can use the TemporaryDatabaseServer parameter to specify a SQL Server instance for the temporary database. This is useful if your database uses features that aren't supported by LocalDB, such as Full-Text Search.</maml:para>
      <maml:para>If you don't want to use LocalDB and don't have permission to create a database on the SQL Server instance, you can use the TemporaryDatabase parameter to specify an existing database.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: TemporaryDatabaseServer -->
      <command:syntaxItem>
        <maml:name>Invoke-DatabaseBuild</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The path to the database project to validate.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: FilterPath -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>FilterPath</maml:name>
          <maml:description>
            <maml:para>The path to a .scpf filter file.</maml:para>
            <maml:para>Overrides any Filter.scpf file present in the InputObject schema with an alternative filter file to be used when validating the schema.</maml:para>
            <maml:para>This parameter will be ignored if the value specified is either $null or empty.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: IgnoreParserErrors -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>IgnoreParserErrors</maml:name>
          <maml:description>
            <maml:para>Tells the SQL Compare engine to ignore parser errors.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: QueryBatchTimeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>QueryBatchTimeout</maml:name>
          <maml:description>
            <maml:para>The execution timeout, in seconds, for each batch of queries in the script for validation. The default value is 30 seconds. A value of zero indicates that no execution timeout will be enforced.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>30</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: SQLCompareOptions -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>SQLCompareOptions</maml:name>
          <maml:description>
            <maml:para>Specifies the SQL Compare options to use when creating the script for validation. The default set of options are listed below. To include additional options, specify a comma-delimited list of the option names (eg 'IgnoreComments, ObjectExistenceChecks'). To turn off a default option, precede the option name with a minus sign (eg '-ForceColumnOrder').</maml:para>
            <maml:para>This parameter will be ignored if the value specified is $null or empty.</maml:para>
            <maml:para>By default, the following Compare options are used:</maml:para>
            <maml:para>- ConsiderNextFilegroupInPartitionSchemes</maml:para>
            <maml:para>- DecryptPost2KEncryptedObjects</maml:para>
            <maml:para>- DoNotOutputCommentHeader</maml:para>
            <maml:para>- ForceColumnOrder</maml:para>
            <maml:para>- IgnoreCertificatesAndCryptoKeys</maml:para>
            <maml:para>- IgnoreDatabaseAndServerName</maml:para>
            <maml:para>- IgnoreUsersPermissionsAndRoleMemberships</maml:para>
            <maml:para>- IgnoreUserProperties</maml:para>
            <maml:para>- IgnoreWhiteSpace</maml:para>
            <maml:para>- IgnoreWithElementOrder</maml:para>
            <maml:para>- IncludeDependencies</maml:para>
            <maml:para>- ThrowOnFileParseFailed</maml:para>
            <maml:para>- UseCompatibilityLevel</maml:para>
            <maml:para>For more information about SQL Compare options, see http://www.red-gate.com/sca/ps/help/compareoptions.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: TemporaryDatabaseServer -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>TemporaryDatabaseServer</maml:name>
          <maml:description>
            <maml:para>The connection string for the temporary database server used for validation. For example, 'Data Source=TempServer01'.</maml:para>
            <maml:para>By default, LocalDB is used for the temporary database. However there may be some features in your database that aren't supported by LocalDB (for example, Full-Text Search). In this case, or if LocalDB isn't present, use this parameter to specify an alternative SQL Server instance for the temporary database.</maml:para>
            <maml:para>Using this option, SQL Change Automation will create a temporary database on the specified SQL Server instance.</maml:para>
            <maml:para>You can't use this parameter in addition to the TemporaryDatabase parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">DatabaseServerConnection</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Compare.SchemaSources.DatabaseServerConnection</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: TransactionIsolationLevel -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>TransactionIsolationLevel</maml:name>
          <maml:description>
            <maml:para>Use this parameter to specify the isolation level for the transactions during the temporary deployment for validation. Permitted values are: Serializable, Snapshot, RepeatableRead, ReadCommitted and ReadUncommitted. The default level is Serializable.</maml:para>
            <maml:para>See http://msdn.microsoft.com/en-gb/library/ms173763.aspx for more details on transaction isolation levels.</maml:para>
            <maml:para>Possible values: Serializable, Snapshot, RepeatableRead, ReadCommitted, ReadUncommitted</maml:para>
          </maml:description>
          <command:parameterValue required="true">TransactionIsolationLevel</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Shared.Domain.TransactionIsolationLevel</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>Serializable</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">Serializable</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Snapshot</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">RepeatableRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadCommitted</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadUncommitted</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: TemporaryDatabase -->
      <command:syntaxItem>
        <maml:name>Invoke-DatabaseBuild</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The path to the database project to validate.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: FilterPath -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>FilterPath</maml:name>
          <maml:description>
            <maml:para>The path to a .scpf filter file.</maml:para>
            <maml:para>Overrides any Filter.scpf file present in the InputObject schema with an alternative filter file to be used when validating the schema.</maml:para>
            <maml:para>This parameter will be ignored if the value specified is either $null or empty.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: IgnoreParserErrors -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>IgnoreParserErrors</maml:name>
          <maml:description>
            <maml:para>Tells the SQL Compare engine to ignore parser errors.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: QueryBatchTimeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>QueryBatchTimeout</maml:name>
          <maml:description>
            <maml:para>The execution timeout, in seconds, for each batch of queries in the script for validation. The default value is 30 seconds. A value of zero indicates that no execution timeout will be enforced.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>30</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: SQLCompareOptions -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>SQLCompareOptions</maml:name>
          <maml:description>
            <maml:para>Specifies the SQL Compare options to use when creating the script for validation. The default set of options are listed below. To include additional options, specify a comma-delimited list of the option names (eg 'IgnoreComments, ObjectExistenceChecks'). To turn off a default option, precede the option name with a minus sign (eg '-ForceColumnOrder').</maml:para>
            <maml:para>This parameter will be ignored if the value specified is $null or empty.</maml:para>
            <maml:para>By default, the following Compare options are used:</maml:para>
            <maml:para>- ConsiderNextFilegroupInPartitionSchemes</maml:para>
            <maml:para>- DecryptPost2KEncryptedObjects</maml:para>
            <maml:para>- DoNotOutputCommentHeader</maml:para>
            <maml:para>- ForceColumnOrder</maml:para>
            <maml:para>- IgnoreCertificatesAndCryptoKeys</maml:para>
            <maml:para>- IgnoreDatabaseAndServerName</maml:para>
            <maml:para>- IgnoreUsersPermissionsAndRoleMemberships</maml:para>
            <maml:para>- IgnoreUserProperties</maml:para>
            <maml:para>- IgnoreWhiteSpace</maml:para>
            <maml:para>- IgnoreWithElementOrder</maml:para>
            <maml:para>- IncludeDependencies</maml:para>
            <maml:para>- ThrowOnFileParseFailed</maml:para>
            <maml:para>- UseCompatibilityLevel</maml:para>
            <maml:para>For more information about SQL Compare options, see http://www.red-gate.com/sca/ps/help/compareoptions.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: TemporaryDatabase -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>TemporaryDatabase</maml:name>
          <maml:description>
            <maml:para>The details of the temporary database used for validation. This can be:</maml:para>
            <maml:para>- an instance of a Database Connection object produced by the New-DatabaseConnection cmdlet.</maml:para>
            <maml:para>- a database connection string. For example, 'Data Source=TempServer01;Initial Catalog=TempDatabase01'.</maml:para>
            <maml:para>By default, LocalDB is used for the temporary database. If you don't want to use LocalDB and don't have permission to create a database on the SQL Server instance, use this option to specify an existing database to use for the temporary copy of the database.</maml:para>
            <maml:para>If you use this parameter, all existing data on the temporary database will be lost.</maml:para>
            <maml:para>You can't use this parameter in addition to the TemporaryDatabaseServer parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">DatabaseConnection</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Compare.SchemaSources.DatabaseConnection</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: TransactionIsolationLevel -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>TransactionIsolationLevel</maml:name>
          <maml:description>
            <maml:para>Use this parameter to specify the isolation level for the transactions during the temporary deployment for validation. Permitted values are: Serializable, Snapshot, RepeatableRead, ReadCommitted and ReadUncommitted. The default level is Serializable.</maml:para>
            <maml:para>See http://msdn.microsoft.com/en-gb/library/ms173763.aspx for more details on transaction isolation levels.</maml:para>
            <maml:para>Possible values: Serializable, Snapshot, RepeatableRead, ReadCommitted, ReadUncommitted</maml:para>
          </maml:description>
          <command:parameterValue required="true">TransactionIsolationLevel</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Shared.Domain.TransactionIsolationLevel</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>Serializable</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">Serializable</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Snapshot</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">RepeatableRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadCommitted</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadUncommitted</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: InputObject -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>The path to the database project to validate.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: TemporaryDatabaseServer -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>TemporaryDatabaseServer</maml:name>
        <maml:description>
          <maml:para>The connection string for the temporary database server used for validation. For example, 'Data Source=TempServer01'.</maml:para>
          <maml:para>By default, LocalDB is used for the temporary database. However there may be some features in your database that aren't supported by LocalDB (for example, Full-Text Search). In this case, or if LocalDB isn't present, use this parameter to specify an alternative SQL Server instance for the temporary database.</maml:para>
          <maml:para>Using this option, SQL Change Automation will create a temporary database on the specified SQL Server instance.</maml:para>
          <maml:para>You can't use this parameter in addition to the TemporaryDatabase parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">DatabaseServerConnection</command:parameterValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.SchemaSources.DatabaseServerConnection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: TemporaryDatabase -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>TemporaryDatabase</maml:name>
        <maml:description>
          <maml:para>The details of the temporary database used for validation. This can be:</maml:para>
          <maml:para>- an instance of a Database Connection object produced by the New-DatabaseConnection cmdlet.</maml:para>
          <maml:para>- a database connection string. For example, 'Data Source=TempServer01;Initial Catalog=TempDatabase01'.</maml:para>
          <maml:para>By default, LocalDB is used for the temporary database. If you don't want to use LocalDB and don't have permission to create a database on the SQL Server instance, use this option to specify an existing database to use for the temporary copy of the database.</maml:para>
          <maml:para>If you use this parameter, all existing data on the temporary database will be lost.</maml:para>
          <maml:para>You can't use this parameter in addition to the TemporaryDatabaseServer parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">DatabaseConnection</command:parameterValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.SchemaSources.DatabaseConnection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SQLCompareOptions -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>SQLCompareOptions</maml:name>
        <maml:description>
          <maml:para>Specifies the SQL Compare options to use when creating the script for validation. The default set of options are listed below. To include additional options, specify a comma-delimited list of the option names (eg 'IgnoreComments, ObjectExistenceChecks'). To turn off a default option, precede the option name with a minus sign (eg '-ForceColumnOrder').</maml:para>
          <maml:para>This parameter will be ignored if the value specified is $null or empty.</maml:para>
          <maml:para>By default, the following Compare options are used:</maml:para>
          <maml:para>- ConsiderNextFilegroupInPartitionSchemes</maml:para>
          <maml:para>- DecryptPost2KEncryptedObjects</maml:para>
          <maml:para>- DoNotOutputCommentHeader</maml:para>
          <maml:para>- ForceColumnOrder</maml:para>
          <maml:para>- IgnoreCertificatesAndCryptoKeys</maml:para>
          <maml:para>- IgnoreDatabaseAndServerName</maml:para>
          <maml:para>- IgnoreUsersPermissionsAndRoleMemberships</maml:para>
          <maml:para>- IgnoreUserProperties</maml:para>
          <maml:para>- IgnoreWhiteSpace</maml:para>
          <maml:para>- IgnoreWithElementOrder</maml:para>
          <maml:para>- IncludeDependencies</maml:para>
          <maml:para>- ThrowOnFileParseFailed</maml:para>
          <maml:para>- UseCompatibilityLevel</maml:para>
          <maml:para>For more information about SQL Compare options, see http://www.red-gate.com/sca/ps/help/compareoptions.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: TransactionIsolationLevel -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>TransactionIsolationLevel</maml:name>
        <maml:description>
          <maml:para>Use this parameter to specify the isolation level for the transactions during the temporary deployment for validation. Permitted values are: Serializable, Snapshot, RepeatableRead, ReadCommitted and ReadUncommitted. The default level is Serializable.</maml:para>
          <maml:para>See http://msdn.microsoft.com/en-gb/library/ms173763.aspx for more details on transaction isolation levels.</maml:para>
          <maml:para>Possible values: Serializable, Snapshot, RepeatableRead, ReadCommitted, ReadUncommitted</maml:para>
        </maml:description>
        <command:parameterValue required="true">TransactionIsolationLevel</command:parameterValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Shared.Domain.TransactionIsolationLevel</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>Serializable</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">Serializable</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Snapshot</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">RepeatableRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadCommitted</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadUncommitted</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: FilterPath -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>FilterPath</maml:name>
        <maml:description>
          <maml:para>The path to a .scpf filter file.</maml:para>
          <maml:para>Overrides any Filter.scpf file present in the InputObject schema with an alternative filter file to be used when validating the schema.</maml:para>
          <maml:para>This parameter will be ignored if the value specified is either $null or empty.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: QueryBatchTimeout -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>QueryBatchTimeout</maml:name>
        <maml:description>
          <maml:para>The execution timeout, in seconds, for each batch of queries in the script for validation. The default value is 30 seconds. A value of zero indicates that no execution timeout will be enforced.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>30</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: IgnoreParserErrors -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>IgnoreParserErrors</maml:name>
        <maml:description>
          <maml:para>Tells the SQL Compare engine to ignore parser errors.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The path to the database project to validate.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <!-- OutputType: IProject -->
      <command:returnValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.Domain.Projects.IProject</maml:name>
          <maml:uri />
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>$project = "C:\Work\project\project.sqlproj"
$validatedProject = $project | Invoke-DatabaseBuild</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to use the Invoke-DatabaseBuild cmdlet to build a SQL Change Automation project.</maml:para>
          <maml:para>A temporary copy of the database is created on LocalDB. If the project content is invalid, this operation will throw an exception. Otherwise, it will output an instance of an IProject object that can be used as the input for other SQL Change Automation cmdlets.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>$project = "C:\Work\scripts"
$validatedProject = $project | Invoke-DatabaseBuild</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to use the Invoke-DatabaseBuild cmdlet to validate the schema and static data of a SQL Source Control project.</maml:para>
          <maml:para>A temporary copy of the database is created on LocalDB. If the project content is invalid, this operation will throw an exception. Otherwise, it will output an instance of an IProject object that can be used as the input for other SQL Change Automation cmdlets.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>$project = "C:\Work\project\project.sqlproj"
$validatedProject = $project | Invoke-DatabaseBuild -TemporaryDatabaseServer "Data Source=temp01\sql2014"</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to specify a SQL Server instance for the temporary database, instead of using LocalDB.</maml:para>
          <maml:para>This is useful if your database uses features that aren't supported by LocalDB, such as Full-Text Search.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 4 ----------</maml:title>
        <dev:code>$project = "C:\Work\project\project.sqlproj"
$temporaryDatabase = New-DatabaseConnection -ServerInstance "temp01\sql2014" -Database "TemporaryDb"
$validatedProject = $project | Invoke-DatabaseBuild -TemporaryDatabase $temporaryDatabase</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to specify an existing SQL Server database to be used when building a project.</maml:para>
          <maml:para>This is useful if you don't want to use LocalDB and you don't have permission to create a database on the SQL Server instance.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 5 ----------</maml:title>
        <dev:code>$project = "C:\Work\scripts"
$options = "IgnoreComments, ObjectExistenceChecks, -IgnoreUserProperties"
$validatedProject = $project | Invoke-DatabaseBuild -SQLCompareOptions $options</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to specify SQL Compare options to be used when building a SQL Source Control project.</maml:para>
          <maml:para>The $options variable is used to specify that the IgnoreComments and ObjectExistenceChecks options should be included in addition to the default set of SQL Compare options used by this cmdlet. The minus sign before IgnoreUserProperties indicates that this default option will be turned off.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Export-DatabaseBuildArtifact -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Export-DatabaseBuildArtifact</command:name>
      <command:verb>Export</command:verb>
      <command:noun>DatabaseBuildArtifact</command:noun>
      <maml:description>
        <maml:para>Exports an IBuildArtifact object to disk.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Export-DatabaseBuildArtifact cmdlet exports the IBuildArtifact object produced by the New-DatabaseBuildArtifact cmdlet as a NuGet package or as a .zip file.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>Export-DatabaseBuildArtifact</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The IBuildArtifact object to be exported.</maml:para>
          </maml:description>
          <command:parameterValue required="true">IBuildArtifact</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Compare.Domain.BuildArtifacts.IBuildArtifact</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Path -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The path to the folder the build artifact is exported to. If the folder doesn't already exist, it will be created when the build artifact is exported.</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Use this parameter to overwrite any existing build artifact with the same name.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: OutputFormat -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>OutputFormat</maml:name>
          <maml:description>
            <maml:para>The output format of the Build Artifact. If you don't use this parameter the default behaviour is to export to a NuGet package</maml:para>
            <maml:para>Possible values: NuGet, Zip</maml:para>
          </maml:description>
          <command:parameterValue required="true">BuildArtifactOutputFormat</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Compare.BuildArtifacts.BuildArtifactOutputFormat</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>NuGet</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">NuGet</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Zip</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: InputObject -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>The IBuildArtifact object to be exported.</maml:para>
        </maml:description>
        <command:parameterValue required="true">IBuildArtifact</command:parameterValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.Domain.BuildArtifacts.IBuildArtifact</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Path -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>Path</maml:name>
        <maml:description>
          <maml:para>The path to the folder the build artifact is exported to. If the folder doesn't already exist, it will be created when the build artifact is exported.</maml:para>
        </maml:description>
        <command:parameterValue required="true">object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Force -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Force</maml:name>
        <maml:description>
          <maml:para>Use this parameter to overwrite any existing build artifact with the same name.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: OutputFormat -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>OutputFormat</maml:name>
        <maml:description>
          <maml:para>The output format of the Build Artifact. If you don't use this parameter the default behaviour is to export to a NuGet package</maml:para>
          <maml:para>Possible values: NuGet, Zip</maml:para>
        </maml:description>
        <command:parameterValue required="true">BuildArtifactOutputFormat</command:parameterValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.BuildArtifacts.BuildArtifactOutputFormat</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>NuGet</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">NuGet</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Zip</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.Domain.BuildArtifacts.IBuildArtifact</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The IBuildArtifact object to be exported.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <!-- OutputType: None -->
      <command:returnValue>
        <dev:type>
          <maml:name>None</maml:name>
          <maml:uri />
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>$project = "C:\Work\project\project.sqlproj"
$validatedProject = $project | Invoke-DatabaseBuild
$buildArtifact = $validatedProject | New-DatabaseBuildArtifact -PackageId MyDatabase -PackageVersion 1.0.0
$buildArtifact | Export-DatabaseBuildArtifact -Path "C:\Export\buildArtifacts"</dev:code>
        <dev:remarks>
          <maml:para>In this example, the New-DatabaseBuildArtifact cmdlet creates an IBuildArtifact object from a validated database schema. The Export-DatabaseBuildArtifact cmdlet then exports the build artifact to C:\Export\buildArtifacts as a NuGet package.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>$project = "C:\Work\project\project.sqlproj"
$validatedProject = $project | Invoke-DatabaseBuild
$buildArtifact = $validatedProject | New-DatabaseBuildArtifact -PackageId MyDatabase -PackageVersion 1.0.0
$buildArtifact | Export-DatabaseBuildArtifact -Path "C:\Export\buildArtifacts" -OutputFormat Zip</dev:code>
        <dev:remarks>
          <maml:para>In this example, the New-DatabaseBuildArtifact cmdlet creates an IBuildArtifact object from a validated database schema. The Export-DatabaseBuildArtifact cmdlet then exports the build artifact to C:\Export\buildArtifacts as a zip file.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>$scriptsFolder = "C:\Work\scripts"
$validatedProject = $scriptsFolder | Invoke-DatabaseBuild
$buildArtifact = $validatedProject | New-DatabaseBuildArtifact -PackageId MyDatabase -PackageVersion 1.0.0
$buildArtifact | Export-DatabaseBuildArtifact -Path "C:\Export\buildArtifacts"</dev:code>
        <dev:remarks>
          <maml:para>In this example, the New-DatabaseBuildArtifact cmdlet creates an IBuildArtifact object from a validated database schema. The Export-DatabaseBuildArtifact cmdlet then exports the package to c:\Export\buildArtifacts as a NuGet package.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Import-DatabaseBuildArtifact -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Import-DatabaseBuildArtifact</command:name>
      <command:verb>Import</command:verb>
      <command:noun>DatabaseBuildArtifact</command:noun>
      <maml:description>
        <maml:para>Imports a build artifact to an instance of an IBuildArtifact object.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Import-DatabaseBuildArtifact cmdlet uses an on disk build artifact to create a IBuildArtifact object that can be used as the input for other cmdlets such as Publish-DatabaseBuildArtifact.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>Import-DatabaseBuildArtifact</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The path to the build artifact file (eg 'C:\Work\buildArtifacts\MyDatabase.1.0.0.nupkg').</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: Path -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
        <maml:name>Path</maml:name>
        <maml:description>
          <maml:para>The path to the build artifact file (eg 'C:\Work\buildArtifacts\MyDatabase.1.0.0.nupkg').</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The path to the build artifact file (eg 'C:\Work\buildArtifacts\MyDatabase.1.0.0.nupkg').</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <!-- OutputType: IBuildArtifact -->
      <command:returnValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.Domain.BuildArtifacts.IBuildArtifact</maml:name>
          <maml:uri />
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>$buildArtifactPath = "C:\Work\buildArtifacts\MyDatabase.1.0.0.nupkg"
$buildArtifact = $buildArtifactPath | Import-DatabaseBuildArtifact
$buildArtifact | Publish-DatabaseBuildArtifact -NuGetFeedUrl http://localhost:4000/nuget/packages -NuGetApiKey ed6d7c98-9847-4599-b5a8-323f215b5c89</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to use the Import-DatabaseBuildArtifact cmdlet to create a IBuildArtifact object from a build artifact exported as NuGet package. The Publish-DatabaseBuildArtifact cmdlet then publishes the output object to a NuGet feed.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>$buildArtifactPath = "C:\Work\buildArtifacts\MyDatabase.zip"
$buildArtifact = $buildArtifactPath | Import-DatabaseBuildArtifact</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to use the Import-DatabaseBuildArtifact cmdlet to create a IBuildArtifact object from a build artifact exported as a .zip file.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: New-DatabaseBuildArtifact -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>New-DatabaseBuildArtifact</command:name>
      <command:verb>New</command:verb>
      <command:noun>DatabaseBuildArtifact</command:noun>
      <maml:description>
        <maml:para>Creates a build artifact from the validated project produced by the Invoke-DatabaseBuild cmdlet.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The New-DatabaseBuildArtifact cmdlet takes a validated project from the output of the Invoke-DatabaseBuild cmdlet and creates a build artifact. It can also include the documentation for your database using the output of the New-DatabaseDocumentation cmdlet.</maml:para>
      <maml:para>You can use the Export-DatabaseBuildArtifact cmdlet to export the build artifact.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>New-DatabaseBuildArtifact</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The output object of Invoke-DatabaseBuild cmdlet, which represents the validated project.</maml:para>
          </maml:description>
          <command:parameterValue required="true">IProject</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Compare.Domain.Projects.IProject</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: PackageId -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>PackageId</maml:name>
          <maml:description>
            <maml:para>The unique identifier for the package you are creating.</maml:para>
            <maml:para>This mustn't contain more than 100 characters and must be a valid NuGet package identifier.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: PackageVersion -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>PackageVersion</maml:name>
          <maml:description>
            <maml:para>The version of the package. This must be in a valid NuGet version format (eg 3.2.1, 3.2.1-beta1).</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Documentation -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Documentation</maml:name>
          <maml:description>
            <maml:para>The documentation object created by New-DatabaseDocumentation to include in the database package.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SchemaDocumentation</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Compare.Documentation.SchemaDocumentation</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: PackageDescription -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>PackageDescription</maml:name>
          <maml:description>
            <maml:para>The description of the package you are creating.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: InputObject -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>The output object of Invoke-DatabaseBuild cmdlet, which represents the validated project.</maml:para>
        </maml:description>
        <command:parameterValue required="true">IProject</command:parameterValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.Domain.Projects.IProject</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: PackageId -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>PackageId</maml:name>
        <maml:description>
          <maml:para>The unique identifier for the package you are creating.</maml:para>
          <maml:para>This mustn't contain more than 100 characters and must be a valid NuGet package identifier.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: PackageVersion -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>PackageVersion</maml:name>
        <maml:description>
          <maml:para>The version of the package. This must be in a valid NuGet version format (eg 3.2.1, 3.2.1-beta1).</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: PackageDescription -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>PackageDescription</maml:name>
        <maml:description>
          <maml:para>The description of the package you are creating.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Documentation -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Documentation</maml:name>
        <maml:description>
          <maml:para>The documentation object created by New-DatabaseDocumentation to include in the database package.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SchemaDocumentation</command:parameterValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.Documentation.SchemaDocumentation</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.Domain.Projects.IProject</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The output object of Invoke-DatabaseBuild cmdlet, which represents the validated project.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <!-- OutputType: IBuildArtifact -->
      <command:returnValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.Domain.BuildArtifacts.IBuildArtifact</maml:name>
          <maml:uri />
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>$project = "C:\Work\project\project.sqlproj"
$validatedProject = $project | Invoke-DatabaseBuild
$buildArtifact = $validatedProject | New-DatabaseBuildArtifact -PackageId MyDatabase -PackageVersion 1.0.0
$buildArtifact | Export-DatabaseBuildArtifact -Path "C:\Export\buildArtifacts"</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to use the New-DatabaseBuildArtifact cmdlet to create a build artifact from a validated SQL Change Automation project.</maml:para>
          <maml:para>First the Invoke-DatabaseBuild cmdlet validates the project. Then the New-DatabaseBuildArtifact cmdlet creates the build artifact. Finally the Export-DatabaseBuildArtifact cmdlet exports the build artifact to file.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>$project = "C:\Work\scripts"
$validatedProject = $project | Invoke-DatabaseBuild
$buildArtifact = $validatedProject | New-DatabaseBuildArtifact -PackageId MyDatabase -PackageVersion 1.0.0
$buildArtifact | Export-DatabaseBuildArtifact -Path "C:\Export\buildArtifacts"</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to use the New-DatabaseBuildArtifact cmdlet to create a NuGet package from a validated SQL Source Control project.</maml:para>
          <maml:para>First the Invoke-DatabaseBuild cmdlet validates the database schema. Then the New-DatabaseBuildArtifact cmdlet creates the build artifact. Finally the Export-DatabaseBuildArtifact cmdlet exports the build artifact to file.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>$project = "C:\Work\scripts"
$validatedProject = $project | Invoke-DatabaseBuild
$documentation = $validatedProject | New-DatabaseDocumentation
$buildArtifact = $validatedProject | New-DatabaseBuildArtifact -PackageId MyDatabase -PackageVersion 1.0.0 -Documentation $documentation
$buildArtifact | Export-DatabaseBuildArtifact -Path "C:\Export\buildArtifacts"</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to use the New-DatabaseBuildArtifact cmdlet to create a NuGet build artifact that also includes database documentation.</maml:para>
          <maml:para>The documentation is created by the New-DatabaseDocumentation cmdlet.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Publish-DatabaseBuildArtifact -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Publish-DatabaseBuildArtifact</command:name>
      <command:verb>Publish</command:verb>
      <command:noun>DatabaseBuildArtifact</command:noun>
      <maml:description>
        <maml:para>Publishes a database build artifact to a NuGet feed or to DLM Dashboard.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Publish-DatabaseBuildArtifact cmdlet publishes an IBuildArtifact object produced by the New-DatabaseBuildArtifact cmdlet to a specified NuGet feed or to DLM Dashboard.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: NuGet -->
      <command:syntaxItem>
        <maml:name>Publish-DatabaseBuildArtifact</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>An instance of a IBuildArtifact object to be published.</maml:para>
            <maml:para>This object is produced by the New-DatabaseBuildArtifact and Import-DatabaseBuildArtifact cmdlets.</maml:para>
          </maml:description>
          <command:parameterValue required="true">IBuildArtifact</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Compare.Domain.BuildArtifacts.IBuildArtifact</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: NuGetFeedUrl -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>NuGetFeedUrl</maml:name>
          <maml:description>
            <maml:para>The NuGet feed that the database build artifact will be published to.</maml:para>
            <maml:para>This must be valid URL for a NuGet feed.</maml:para>
            <maml:para>You can't use this parameter in addition to the DlmDashboardUrl parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: NuGetApiKey -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>NuGetApiKey</maml:name>
          <maml:description>
            <maml:para>The API key for the NuGet server.</maml:para>
            <maml:para>You can't use this parameter in addition to the DlmDashboardUrl parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: DLMDashboard -->
      <command:syntaxItem>
        <maml:name>Publish-DatabaseBuildArtifact</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>An instance of a IBuildArtifact object to be published.</maml:para>
            <maml:para>This object is produced by the New-DatabaseBuildArtifact and Import-DatabaseBuildArtifact cmdlets.</maml:para>
          </maml:description>
          <command:parameterValue required="true">IBuildArtifact</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Compare.Domain.BuildArtifacts.IBuildArtifact</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: DlmDashboardUrl -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>DlmDashboardUrl</maml:name>
          <maml:description>
            <maml:para>The URL, including port number, to the instance of DLM Dashboard that the database build artifact will be published to.</maml:para>
            <maml:para>You can't use this parameter in addition to the NuGetFeedUrl and NuGetApiKey parameters.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: InputObject -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>An instance of a IBuildArtifact object to be published.</maml:para>
          <maml:para>This object is produced by the New-DatabaseBuildArtifact and Import-DatabaseBuildArtifact cmdlets.</maml:para>
        </maml:description>
        <command:parameterValue required="true">IBuildArtifact</command:parameterValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.Domain.BuildArtifacts.IBuildArtifact</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: NuGetFeedUrl -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>NuGetFeedUrl</maml:name>
        <maml:description>
          <maml:para>The NuGet feed that the database build artifact will be published to.</maml:para>
          <maml:para>This must be valid URL for a NuGet feed.</maml:para>
          <maml:para>You can't use this parameter in addition to the DlmDashboardUrl parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: NuGetApiKey -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>NuGetApiKey</maml:name>
        <maml:description>
          <maml:para>The API key for the NuGet server.</maml:para>
          <maml:para>You can't use this parameter in addition to the DlmDashboardUrl parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: DlmDashboardUrl -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>DlmDashboardUrl</maml:name>
        <maml:description>
          <maml:para>The URL, including port number, to the instance of DLM Dashboard that the database build artifact will be published to.</maml:para>
          <maml:para>You can't use this parameter in addition to the NuGetFeedUrl and NuGetApiKey parameters.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.Domain.BuildArtifacts.IBuildArtifact</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>An instance of a IBuildArtifact object to be published.</maml:para>
          <maml:para>This object is produced by the New-DatabaseBuildArtifact and Import-DatabaseBuildArtifact cmdlets.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <!-- OutputType: None -->
      <command:returnValue>
        <dev:type>
          <maml:name>None</maml:name>
          <maml:uri />
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>$scriptsFolder = "C:\Work\scripts"
$validatedProject = $scriptsFolder | Invoke-DatabaseBuild
$buildArtifact = $validatedProject | New-DatabaseBuildArtifact -PackageId MyDatabase -PackageVersion 1.0.0
$buildArtifact | Publish-DatabaseBuildArtifact -NuGetFeedUrl http://localhost:4000/nuget/packages -NuGetApiKey ed6d7c98-9847-4599-b5a8-323f215b5c89</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to use the Publish-DatabaseBuildArtifact cmdlet to publish a build artifact object produced by the New-DatabaseBuildArtifact cmdlet to a NuGet feed.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>$buildArtifactPath = "c:\Work\buildArtifacts\MyDatabase.1.0.0.nupkg"
$buildArtifact = $buildArtifactPath | Import-DatabaseBuildArtifact
$buildArtifact | Publish-DatabaseBuildArtifact -NuGetFeedUrl http://localhost:4000/nuget/packages -NuGetApiKey ed6d7c98-9847-4599-b5a8-323f215b5c89</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to publish a database build artifact file to a NuGet feed. The Import-DatabaseBuildArtifact cmdlet creates an instance of an IBuildArtifact object, which is then used as the input for the Publish-DatabaseBuildArtifact cmdlet.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>$scriptsFolder = "C:\Work\scripts"
$validatedProject = $scriptsFolder | Invoke-DatabaseBuild
$buildArtifact = $validatedProject | New-DatabaseBuildArtifact -PackageId MyDatabase -PackageVersion 1.0.0
$buildArtifact | Publish-DatabaseBuildArtifact -DlmDashboardUrl http://localhost:19528</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to use the Publish-DatabaseBuildArtifact cmdlet to publish a database build artifact object to DLM Dashboard.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: New-DatabaseConnection -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>New-DatabaseConnection</command:name>
      <command:verb>New</command:verb>
      <command:noun>DatabaseConnection</command:noun>
      <maml:description>
        <maml:para>Creates an object that other SQL Change Automation cmdlets can use to connect to a database.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The New-DatabaseConnection cmdlet creates a DatabaseConnection object that can be used by other SQL Change Automation cmdlets to connect to a database. The object contains the server instance, database name, and security credentials that cmdlets will use to connect to the database.</maml:para>
      <maml:para>You can use Windows authentication or SQL Server authentication to connect to the database. If you use the Username and Password parameters, SQL Server authentication will be used. If you don't use those parameters, Windows authentication will be used; the account used to connect will be the account running PowerShell or the PowerShell script.</maml:para>
      <maml:para>The cmdlets that can use the Database Connection object to connect to a database are Invoke-DatabaseBuild, New-DatabaseReleaseArtifact, Sync-DatabaseSchema, Test-DatabaseConnection and Use-DatabaseReleaseArtifact.</maml:para>
      <maml:para>As an alternative to using this cmdlet, you may use a standard database connection string in place of a Database Connection object. The following connection string properties are supported: ApplicationIntent, Asynchronous Processing, AttachDbFilename, Connect Timeout, Context Connection, Current Language, Data Source, Encrypt, Enlist, Failover Partner, Initial Catalog, Integrated Security, Load Balance Timeout, Max Pool Size, Min Pool Size, MultipleActiveResultSets, MultiSubnetFailover, Network Library, Packet Size, Password, Persist Security Info, Replication, Transaction Binding, TrustServerCertificate, Type System Version, User ID, User Instance and Workstation ID.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>New-DatabaseConnection</maml:name>
        <!-- Parameter: Database -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Database</maml:name>
          <maml:description>
            <maml:para>The database to connect to, on the server specified in ServerInstance. This is equivalent to the Initial Catalog property of a connection string.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: ServerInstance -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>ServerInstance</maml:name>
          <maml:description>
            <maml:para>The name or network address of the SQL Server instance to connect to. For example, "staging01\sql2014". This is equivalent to the Data Source property of a connection string.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Password -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Password</maml:name>
          <maml:description>
            <maml:para>The password for the SQL Server account cmdlets will use to connect to the database. This is equivalent to the Password property of a connection string. This parameter is optional. If left unspecified, it defaults to the empty string.</maml:para>
            <maml:para>This parameter is ignored if the Username parameter is null or empty.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Username -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Username</maml:name>
          <maml:description>
            <maml:para>The username for the SQL Server account cmdlets will use to connect to the database. This is equivalent to the User ID property of a connection string. This parameter is optional. If you specify a null or empty string, Windows Authentication will be used and the Password parameter will be ignored.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: ServerInstance -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>ServerInstance</maml:name>
        <maml:description>
          <maml:para>The name or network address of the SQL Server instance to connect to. For example, "staging01\sql2014". This is equivalent to the Data Source property of a connection string.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Database -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>Database</maml:name>
        <maml:description>
          <maml:para>The database to connect to, on the server specified in ServerInstance. This is equivalent to the Initial Catalog property of a connection string.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Username -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Username</maml:name>
        <maml:description>
          <maml:para>The username for the SQL Server account cmdlets will use to connect to the database. This is equivalent to the User ID property of a connection string. This parameter is optional. If you specify a null or empty string, Windows Authentication will be used and the Password parameter will be ignored.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Password -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Password</maml:name>
        <maml:description>
          <maml:para>The password for the SQL Server account cmdlets will use to connect to the database. This is equivalent to the Password property of a connection string. This parameter is optional. If left unspecified, it defaults to the empty string.</maml:para>
          <maml:para>This parameter is ignored if the Username parameter is null or empty.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues>
      <!-- OutputType: DatabaseConnection -->
      <command:returnValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.SchemaSources.DatabaseConnection</maml:name>
          <maml:uri />
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>$staging = New-DatabaseConnection -ServerInstance "staging01\sql2014" -Database "Staging" -Username "AutomationUser" -Password "P@ssw0rd"</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to create a Database Connection object. The object will use SQL Server authentication to connect to the database.</maml:para>
          <maml:para>The New-DatabaseConnection cmdlet creates a Database Connection object, $staging. This can be used to connect to the database, Staging, on the SQL Server staging01\sql2014. Because the Username and Password parameters are provided, SQL Server authentication will be used to connect to Staging.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>$staging = New-DatabaseConnection -ServerInstance "staging01\sql2014" -Database "Staging"</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to create a Database Connection object that will use Windows authentication to connect to the database.</maml:para>
          <maml:para>The New-DatabaseConnection cmdlet creates a Database Connection object, $staging. This can be used to connect to the database Staging on the SQL Server staging01\sql2014. Because no Username and Password are provided, Windows authentication will be used to connect to the database.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Test-DatabaseConnection -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Test-DatabaseConnection</command:name>
      <command:verb>Test</command:verb>
      <command:noun>DatabaseConnection</command:noun>
      <maml:description>
        <maml:para>Checks a DatabaseConnection object can connect to the database.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Test-DatabaseConnection cmdlet checks that the details in a DatabaseConnection object produced by the New-DatabaseConnection cmdlet can be used to connect to the specified database.</maml:para>
      <maml:para>If Test-DatabaseConnection can't connect to the database, it raises an error.</maml:para>
      <maml:para>After testing the connection, the cmdlet pipes out the input DatabaseConnection object. This allows you to use Test-DatabaseConnection in a chain of cmdlets.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>Test-DatabaseConnection</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The Database Connection object or database connection string that identifies the connection to test. See New-DatabaseConnection for details.</maml:para>
          </maml:description>
          <command:parameterValue required="true">DatabaseConnection</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Compare.SchemaSources.DatabaseConnection</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: InputObject -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>The Database Connection object or database connection string that identifies the connection to test. See New-DatabaseConnection for details.</maml:para>
        </maml:description>
        <command:parameterValue required="true">DatabaseConnection</command:parameterValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.SchemaSources.DatabaseConnection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.SchemaSources.DatabaseConnection</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The Database Connection object or database connection string that identifies the connection to test. See New-DatabaseConnection for details.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <!-- OutputType: DatabaseConnection -->
      <command:returnValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.SchemaSources.DatabaseConnection</maml:name>
          <maml:uri />
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>$connection = New-DatabaseConnection -ServerInstance "prod01\sql2014" -Database "Production" -Username "AutomationUser" -Password "P@ssw0rd"
Test-DatabaseConnection $connection</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to use the Test-DatabaseConnection cmdlet to check that a Database Connection object can connect to a database.</maml:para>
          <maml:para>The New-DatabaseConnection cmdlet creates a Database Connection object, $connection. This contains the details needed to connect to the database, Production, on prod01\sql2014. The Test-DatabaseConnection cmdlet then checks these details can be used to connect to Production.</maml:para>
          <maml:para>If Test-DatabaseConnection can't connect to the database, you must check the connection details, and create a new Database Connection object with the correct details.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>$connection = New-DatabaseConnection -ServerInstance "prod01\sql2014" -Database "Production" -Username "AutomationUser" -Password "P@ssw0rd" | Test-DatabaseConnection</dev:code>
        <dev:remarks>
          <maml:para>This example show how to pass a Database Connection object through the pipeline to the Test-DatabaseConnection cmdlet.</maml:para>
          <maml:para>The New-DatabaseConnection cmdlet creates a Database Connection object. This is piped to the Test-DatabaseConnection cmdlet.</maml:para>
          <maml:para>Test-DatabaseConnection checks that it can connect to the database, Production, using the Database Connection object. It then pipes the same Database Connection object out. This allows it to be assigned to the $connection variable.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: New-DatabaseDocumentation -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>New-DatabaseDocumentation</command:name>
      <command:verb>New</command:verb>
      <command:noun>DatabaseDocumentation</command:noun>
      <maml:description>
        <maml:para>Generates documentation for the validated database schema produced by the Invoke-DlmDatabaseValidation cmdlet.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The New-DatabaseDocumentation cmdlet takes the output of the Invoke-DatabaseBuild cmdlet and creates documentation for that schema. It creates a SchemaDocumentation object that represents the documentation for a validated project.</maml:para>
      <maml:para>You can use the New-DatabaseBuildArtifact cmdlet to include this documentation in the database build artifact it creates.</maml:para>
      <maml:para>In order to generate the documentation, the cmdlet creates a temporary copy of the database. By default, it uses LocalDB for this. Alternatively, you can use the TemporaryDatabaseServer parameter to specify a SQL Server instance for the temporary database. This is useful if your database uses features that aren't supported by LocalDB, such as Full-Text Search.</maml:para>
      <maml:para>If you don't want to use LocalDB but don't have permission to create a database on the SQL Server instance, you can use the TemporaryDatabase parameter to specify an existing database.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: TemporaryDatabaseServer -->
      <command:syntaxItem>
        <maml:name>New-DatabaseDocumentation</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The output object of Invoke-DatabaseBuild cmdlet, which represents the validated database schema.</maml:para>
          </maml:description>
          <command:parameterValue required="true">IProject</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Compare.Domain.Projects.IProject</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: FilterPath -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>FilterPath</maml:name>
          <maml:description>
            <maml:para>The path to a .scpf filter file.</maml:para>
            <maml:para>Overrides any Filter.scpf file present in the InputObject schema with an alternative filter file to be used when documenting this schema.</maml:para>
            <maml:para>This parameter will be ignored if the value specified is either $null or empty.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: IgnoreParserErrors -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>IgnoreParserErrors</maml:name>
          <maml:description>
            <maml:para>Whether the SQL Compare engine should ignore parser errors.</maml:para>
            <maml:para>This parameter will be ignored if the InputObject is a database connection.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: SQLCompareOptions -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>SQLCompareOptions</maml:name>
          <maml:description>
            <maml:para>Specifies the SQL Compare options to use when creating the script for validation. A default set of options is listed below. To include additional options, specify a comma-delimited list of the option names (eg 'IgnoreComments, ObjectExistenceChecks'). To turn off a default option, precede the option name with a minus sign (eg '-ForceColumnOrder').</maml:para>
            <maml:para>This parameter will be ignored if the value specified is $null or empty.</maml:para>
            <maml:para>By default, the following Compare options are used:</maml:para>
            <maml:para>- ConsiderNextFilegroupInPartitionSchemes</maml:para>
            <maml:para>- DecryptPost2KEncryptedObjects</maml:para>
            <maml:para>- DoNotOutputCommentHeader</maml:para>
            <maml:para>- ForceColumnOrder</maml:para>
            <maml:para>- IgnoreCertificatesAndCryptoKeys</maml:para>
            <maml:para>- IgnoreDatabaseAndServerName</maml:para>
            <maml:para>- IgnoreUsersPermissionsAndRoleMemberships</maml:para>
            <maml:para>- IgnoreUserProperties</maml:para>
            <maml:para>- IgnoreWhiteSpace</maml:para>
            <maml:para>- IgnoreWithElementOrder</maml:para>
            <maml:para>- IncludeDependencies</maml:para>
            <maml:para>- ThrowOnFileParseFailed</maml:para>
            <maml:para>- UseCompatibilityLevel</maml:para>
            <maml:para>For more information about SQL Compare options, see http://www.red-gate.com/sca/ps/help/compareoptions.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: TemporaryDatabaseServer -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>TemporaryDatabaseServer</maml:name>
          <maml:description>
            <maml:para>The connection string for the temporary database server used for documentation. For example, 'Data Source=TempServer01'.</maml:para>
            <maml:para>By default, LocalDB is used for the temporary database. However there may be some features in your database that aren't supported by LocalDB (for example, Full-Text Search). In this case, or if LocalDB is not present, use this parameter to specify an alternative SQL Server instance for the temporary database.</maml:para>
            <maml:para>Using this option, SQL Change Automation will create a temporary, randomly-named database on the specified SQL Server instance.</maml:para>
            <maml:para>You can't use this parameter in addition to the TemporaryDatabase parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">DatabaseServerConnection</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Compare.SchemaSources.DatabaseServerConnection</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: TemporaryDatabase -->
      <command:syntaxItem>
        <maml:name>New-DatabaseDocumentation</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The output object of Invoke-DatabaseBuild cmdlet, which represents the validated database schema.</maml:para>
          </maml:description>
          <command:parameterValue required="true">IProject</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Compare.Domain.Projects.IProject</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: FilterPath -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>FilterPath</maml:name>
          <maml:description>
            <maml:para>The path to a .scpf filter file.</maml:para>
            <maml:para>Overrides any Filter.scpf file present in the InputObject schema with an alternative filter file to be used when documenting this schema.</maml:para>
            <maml:para>This parameter will be ignored if the value specified is either $null or empty.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: IgnoreParserErrors -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>IgnoreParserErrors</maml:name>
          <maml:description>
            <maml:para>Whether the SQL Compare engine should ignore parser errors.</maml:para>
            <maml:para>This parameter will be ignored if the InputObject is a database connection.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: SQLCompareOptions -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>SQLCompareOptions</maml:name>
          <maml:description>
            <maml:para>Specifies the SQL Compare options to use when creating the script for validation. A default set of options is listed below. To include additional options, specify a comma-delimited list of the option names (eg 'IgnoreComments, ObjectExistenceChecks'). To turn off a default option, precede the option name with a minus sign (eg '-ForceColumnOrder').</maml:para>
            <maml:para>This parameter will be ignored if the value specified is $null or empty.</maml:para>
            <maml:para>By default, the following Compare options are used:</maml:para>
            <maml:para>- ConsiderNextFilegroupInPartitionSchemes</maml:para>
            <maml:para>- DecryptPost2KEncryptedObjects</maml:para>
            <maml:para>- DoNotOutputCommentHeader</maml:para>
            <maml:para>- ForceColumnOrder</maml:para>
            <maml:para>- IgnoreCertificatesAndCryptoKeys</maml:para>
            <maml:para>- IgnoreDatabaseAndServerName</maml:para>
            <maml:para>- IgnoreUsersPermissionsAndRoleMemberships</maml:para>
            <maml:para>- IgnoreUserProperties</maml:para>
            <maml:para>- IgnoreWhiteSpace</maml:para>
            <maml:para>- IgnoreWithElementOrder</maml:para>
            <maml:para>- IncludeDependencies</maml:para>
            <maml:para>- ThrowOnFileParseFailed</maml:para>
            <maml:para>- UseCompatibilityLevel</maml:para>
            <maml:para>For more information about SQL Compare options, see http://www.red-gate.com/sca/ps/help/compareoptions.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: TemporaryDatabase -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>TemporaryDatabase</maml:name>
          <maml:description>
            <maml:para>The details of the temporary database used for documentation. This can be:</maml:para>
            <maml:para>- a database connection object that contains connection details for a database. See New-DatabaseConnection for details.</maml:para>
            <maml:para>- a database connection string. For example, 'Data Source=TempServer01;Initial Catalog=TempDatabase01'.</maml:para>
            <maml:para>By default, LocalDB is used for the temporary database. If you don't want to use LocalDB and don't have permission to create a database on the SQL Server instance, use this option to specify an existing database to use for the temporary copy of the database.</maml:para>
            <maml:para>If you use this parameter, all existing data on the temporary database will be lost.</maml:para>
            <maml:para>You can't use this parameter in addition to the TemporaryDatabaseServer parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">DatabaseConnection</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Compare.SchemaSources.DatabaseConnection</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: InputObject -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>The output object of Invoke-DatabaseBuild cmdlet, which represents the validated database schema.</maml:para>
        </maml:description>
        <command:parameterValue required="true">IProject</command:parameterValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.Domain.Projects.IProject</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: TemporaryDatabaseServer -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>TemporaryDatabaseServer</maml:name>
        <maml:description>
          <maml:para>The connection string for the temporary database server used for documentation. For example, 'Data Source=TempServer01'.</maml:para>
          <maml:para>By default, LocalDB is used for the temporary database. However there may be some features in your database that aren't supported by LocalDB (for example, Full-Text Search). In this case, or if LocalDB is not present, use this parameter to specify an alternative SQL Server instance for the temporary database.</maml:para>
          <maml:para>Using this option, SQL Change Automation will create a temporary, randomly-named database on the specified SQL Server instance.</maml:para>
          <maml:para>You can't use this parameter in addition to the TemporaryDatabase parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">DatabaseServerConnection</command:parameterValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.SchemaSources.DatabaseServerConnection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: TemporaryDatabase -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>TemporaryDatabase</maml:name>
        <maml:description>
          <maml:para>The details of the temporary database used for documentation. This can be:</maml:para>
          <maml:para>- a database connection object that contains connection details for a database. See New-DatabaseConnection for details.</maml:para>
          <maml:para>- a database connection string. For example, 'Data Source=TempServer01;Initial Catalog=TempDatabase01'.</maml:para>
          <maml:para>By default, LocalDB is used for the temporary database. If you don't want to use LocalDB and don't have permission to create a database on the SQL Server instance, use this option to specify an existing database to use for the temporary copy of the database.</maml:para>
          <maml:para>If you use this parameter, all existing data on the temporary database will be lost.</maml:para>
          <maml:para>You can't use this parameter in addition to the TemporaryDatabaseServer parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">DatabaseConnection</command:parameterValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.SchemaSources.DatabaseConnection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: FilterPath -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>FilterPath</maml:name>
        <maml:description>
          <maml:para>The path to a .scpf filter file.</maml:para>
          <maml:para>Overrides any Filter.scpf file present in the InputObject schema with an alternative filter file to be used when documenting this schema.</maml:para>
          <maml:para>This parameter will be ignored if the value specified is either $null or empty.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: IgnoreParserErrors -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>IgnoreParserErrors</maml:name>
        <maml:description>
          <maml:para>Whether the SQL Compare engine should ignore parser errors.</maml:para>
          <maml:para>This parameter will be ignored if the InputObject is a database connection.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: SQLCompareOptions -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>SQLCompareOptions</maml:name>
        <maml:description>
          <maml:para>Specifies the SQL Compare options to use when creating the script for validation. A default set of options is listed below. To include additional options, specify a comma-delimited list of the option names (eg 'IgnoreComments, ObjectExistenceChecks'). To turn off a default option, precede the option name with a minus sign (eg '-ForceColumnOrder').</maml:para>
          <maml:para>This parameter will be ignored if the value specified is $null or empty.</maml:para>
          <maml:para>By default, the following Compare options are used:</maml:para>
          <maml:para>- ConsiderNextFilegroupInPartitionSchemes</maml:para>
          <maml:para>- DecryptPost2KEncryptedObjects</maml:para>
          <maml:para>- DoNotOutputCommentHeader</maml:para>
          <maml:para>- ForceColumnOrder</maml:para>
          <maml:para>- IgnoreCertificatesAndCryptoKeys</maml:para>
          <maml:para>- IgnoreDatabaseAndServerName</maml:para>
          <maml:para>- IgnoreUsersPermissionsAndRoleMemberships</maml:para>
          <maml:para>- IgnoreUserProperties</maml:para>
          <maml:para>- IgnoreWhiteSpace</maml:para>
          <maml:para>- IgnoreWithElementOrder</maml:para>
          <maml:para>- IncludeDependencies</maml:para>
          <maml:para>- ThrowOnFileParseFailed</maml:para>
          <maml:para>- UseCompatibilityLevel</maml:para>
          <maml:para>For more information about SQL Compare options, see http://www.red-gate.com/sca/ps/help/compareoptions.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.Domain.Projects.IProject</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The output object of Invoke-DatabaseBuild cmdlet, which represents the validated database schema.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <!-- OutputType: SchemaDocumentation -->
      <command:returnValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.Documentation.SchemaDocumentation</maml:name>
          <maml:uri />
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>$project = "C:\Work\project\project.sqlproj"
$validatedProject = $project | Invoke-DatabaseBuild
$documentation = $validatedProject | New-DatabaseDocumentation
$buildArtifact = $validatedProject | New-DatabaseBuildArtifact -PackageId MyDatabase -PackageVersion 1.0.0 -Documentation $documentation</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to create database documentation for a validated SQL Change Automation project using the New-DatabaseDocumentation cmdlet. The New-DatabaseBuildArtifact cmdlet includes this documentation in the database build artifact it creates.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>$scriptsFolder = "C:\Work\scripts"
$validatedProject = $scriptsFolder | Invoke-DatabaseBuild
$documentation = $validatedProject | New-DatabaseDocumentation
$buildArtifact = $validatedProject | New-DatabaseBuildArtifact -PackageId MyDatabase -PackageVersion 1.0.0 -Documentation $documentation</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to create database documentation for a validated SQL Source Control project using the New-DatabaseDocumentation cmdlet. The New-DatabaseBuildArtifact cmdlet includes this documentation in the database build artifact it creates.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Export-DatabaseReleaseArtifact -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Export-DatabaseReleaseArtifact</command:name>
      <command:verb>Export</command:verb>
      <command:noun>DatabaseReleaseArtifact</command:noun>
      <maml:description>
        <maml:para>Exports a Release Artifact produced by the New-DatabaseReleaseArtifact cmdlet to a folder or .zip file on disk.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Export-DatabaseReleaseArtifact cmdlet exports database deployment resources, which are produced by the New-DatabaseReleaseArtifact cmdlet to a folder or .zip file.</maml:para>
      <maml:para>Specify the output folder or file using the Path parameter. If the Path ends in .zip, the database deployment resources will be exported to a .zip file. Otherwise, they'll be exported to a folder. You can override this choice with the optional Format parameter.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>Export-DatabaseReleaseArtifact</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The IReleaseArtifact object to be exported.</maml:para>
          </maml:description>
          <command:parameterValue required="true">IReleaseArtifact</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Compare.Domain.ReleaseArtifacts.IReleaseArtifact</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Path -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The path to the output folder or .zip file. If the path ends in ".zip", the Database Release is exported to a zip file. Otherwise it is exported to a folder. You can override this automatic choice using the Format parameter, and setting it to either "Zip" or "Folder" as required.</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Indicates that any existing output file or folder should be overwritten.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Format -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Format</maml:name>
          <maml:description>
            <maml:para>The output format of the Database Release. If you specify Zip, the Database Release will be exported to a .zip file. If you specify Folder, the Database Release will be exported to a folder. If you specify Default or don't use the parameter, the output format will be determined by the Path parameter.</maml:para>
            <maml:para>Possible values: Default, Folder, Zip</maml:para>
          </maml:description>
          <command:parameterValue required="true">OutputFormat</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Compare.Import.OutputFormat</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>Default</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">Default</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Folder</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Zip</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: InputObject -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>The IReleaseArtifact object to be exported.</maml:para>
        </maml:description>
        <command:parameterValue required="true">IReleaseArtifact</command:parameterValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.Domain.ReleaseArtifacts.IReleaseArtifact</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Path -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>Path</maml:name>
        <maml:description>
          <maml:para>The path to the output folder or .zip file. If the path ends in ".zip", the Database Release is exported to a zip file. Otherwise it is exported to a folder. You can override this automatic choice using the Format parameter, and setting it to either "Zip" or "Folder" as required.</maml:para>
        </maml:description>
        <command:parameterValue required="true">object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Format -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Format</maml:name>
        <maml:description>
          <maml:para>The output format of the Database Release. If you specify Zip, the Database Release will be exported to a .zip file. If you specify Folder, the Database Release will be exported to a folder. If you specify Default or don't use the parameter, the output format will be determined by the Path parameter.</maml:para>
          <maml:para>Possible values: Default, Folder, Zip</maml:para>
        </maml:description>
        <command:parameterValue required="true">OutputFormat</command:parameterValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.Import.OutputFormat</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>Default</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">Default</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Folder</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Zip</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: Force -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Force</maml:name>
        <maml:description>
          <maml:para>Indicates that any existing output file or folder should be overwritten.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.Domain.ReleaseArtifacts.IReleaseArtifact</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The IReleaseArtifact object to be exported.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <!-- OutputType: None -->
      <command:returnValue>
        <dev:type>
          <maml:name>None</maml:name>
          <maml:uri />
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>$production = New-DatabaseConnection -ServerInstance "prod01\sql2014" -Database "Production"
$build = Import-DatabaseBuildArtifact "C:\Work\buildArtifacts\DatabaseBuildArtifact.1.0.0.nupkg"
 
$release = New-DatabaseReleaseArtifact -Source $build -Target $production
$release | Export-DatabaseReleaseArtifact -Path "C:\Export\DatabaseRelease"</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to create a SQL Change Automation Release Artifact and export it to a folder.</maml:para>
          <maml:para>The New-DatabaseReleaseArtifact cmdlet creates a IReleaseArtifact object, which represents the database deployment resources. This object can update the database, Production. The IReleaseArtifact object is passed through the pipeline to the Export-DatabaseReleaseArtifact cmdlet. This cmdlet exports the database deployment resources to the folder C:\Export\DatabaseRelease\. The resources are exported to a folder because the Path parameter didn't end in .zip.</maml:para>
          <maml:para>Exporting database deployment resources lets you review the update script and other update resources, such as the change report and deployment warnings.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>$production = New-DatabaseConnection -ServerInstance "prod01\sql2014" -Database "Production"
$build = Import-DatabaseBuildArtifact "C:\Work\buildArtifacts\DatabaseBuildArtifact.1.0.0.nupkg"
 
$release = New-DatabaseReleaseArtifact -Source $build -Target $production
$release | Export-DatabaseReleaseArtifact -Path "C:\Export\DatabaseRelease.zip"</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to create a database deployment resources and export it to a .zip file.</maml:para>
          <maml:para>The New-DatabaseReleaseArtifact cmdlet creates an IReleaseArtifact object, representing the database deployment resources, which is passed through the pipeline to the Export-DatabaseReleaseArtifact cmdlet. This cmdlet exports the database deployment resources to a .zip file, because the Path parameter ended in .zip.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>$production = New-DatabaseConnection -ServerInstance "prod01\sql2014" -Database "Production"
$build = Import-DatabaseBuildArtifact "C:\Work\buildArtifacts\DatabaseBuildArtifact.1.0.0.nupkg"
 
$release = New-DatabaseReleaseArtifact -Source $build -Target $production
$release | Export-DatabaseReleaseArtifact -Path "C:\Export\DatabaseRelease" -Format Zip</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to create database deployment resources and export them to a .zip file using the Format parameter.</maml:para>
          <maml:para>The Export-DatabaseReleaseArtifact cmdlet exports the database deployment resources to the .zip file, "C:\Export\DatabaseRelease.zip" because "Zip" is specified by the Format parameter. If the Format parameter wasn't used, the database deployment resources would be exported to a folder, because the Path parameter doesn't end in ".zip".</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Import-DatabaseReleaseArtifact -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Import-DatabaseReleaseArtifact</command:name>
      <command:verb>Import</command:verb>
      <command:noun>DatabaseReleaseArtifact</command:noun>
      <maml:description>
        <maml:para>Imports a Release Artifact, exported to disk by Export-DatabaseReleaseArtifact, from a folder or .zip file.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Import-DatabaseReleaseArtifact cmdlet re-imports the release artifact that has been exported to a folder or .zip file by the Export-DatabaseReleaseArtifact cmdlet.</maml:para>
      <maml:para>The IReleaseArtifact object produced can then be used by the Use-DatabaseReleaseArtifact cmdlet to deploy the update.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>Import-DatabaseReleaseArtifact</maml:name>
        <!-- Parameter: Path -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
          <maml:name>Path</maml:name>
          <maml:description>
            <maml:para>The path to the folder or .zip file you want to import.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: Path -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="0">
        <maml:name>Path</maml:name>
        <maml:description>
          <maml:para>The path to the folder or .zip file you want to import.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues>
      <!-- OutputType: IReleaseArtifact -->
      <command:returnValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.Domain.ReleaseArtifacts.IReleaseArtifact</maml:name>
          <maml:uri />
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>$release = Import-DatabaseReleaseArtifact -Path "C:\Work\DatabaseRelease\"</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to import a folder to create the database deployment resources.</maml:para>
          <maml:para>The Import-DatabaseReleaseArtifact cmdlet imports the folder C:\Work\DatabaseRelease\, creating the database deployment resources. This folder was created by exporting to C:\Work\DatabaseRelease\ using the Export-DatabaseReleaseArtifact cmdlet.</maml:para>
          <maml:para>Using Export-DatabaseReleaseArtifact and Import-DatabaseReleaseArtifact like this allows you to review the update script before you deploy with SQL Change Automation.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>$release = Import-DatabaseReleaseArtifact -Path "C:\Work\DatabaseRelease.zip"</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to import a .zip file to create the database deployment resources.</maml:para>
          <maml:para>The Import-DatabaseReleaseArtifact cmdlet imports the .zip file C:\Work\DatabaseRelease.zip, creating the database deployment resources.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: New-DatabaseReleaseArtifact -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>New-DatabaseReleaseArtifact</command:name>
      <command:verb>New</command:verb>
      <command:noun>DatabaseReleaseArtifact</command:noun>
      <maml:description>
        <maml:para>Generates a Release Artifact containing deployment resources for a specific environment.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The New-ReleaseArtifact cmdlet creates the database deployment resources containing all the information you need to update a target database. The output can be used by the Use-ReleaseArtifact cmdlet to update the target database, or by the Export-ReleaseArtifact cmdlet to export these resources for review.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: AbortOnWarningLevel -->
      <command:syntaxItem>
        <maml:name>New-DatabaseReleaseArtifact</maml:name>
        <!-- Parameter: Source -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Source</maml:name>
          <maml:description>
            <maml:para>The schema you want to update databases to. This can be:</maml:para>
            <maml:para>- a Database Connection object created by the New-DatabaseConnection cmdlet</maml:para>
            <maml:para>- a database connection string</maml:para>
            <maml:para>- a path for a NuGet package or .zip file. This must contain a scripts folder located at db\state</maml:para>
            <maml:para>- a Database Build Artifact object produced by the New-DatabaseBuildArtifact cmdlet</maml:para>
            <maml:para>- a path for a scripts folder, created by SQL Compare or from your SQL Source Control database repository</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Target -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Target</maml:name>
          <maml:description>
            <maml:para>A database schema you want to update from. This can be:</maml:para>
            <maml:para>- a Database Connection object created by the New-DatabaseConnection cmdlet</maml:para>
            <maml:para>- a database connection string</maml:para>
            <maml:para>- a path for a NuGet package or .zip file. This must contain a scripts folder located at db\state</maml:para>
            <maml:para>- a Database Build Artifact object produced by the New-DatabaseBuildArtifact cmdlet</maml:para>
            <maml:para>- a path for a scripts folder, created by SQL Compare or from your SQL Source Control database repository</maml:para>
            <maml:para>- a list containing one or more of the above</maml:para>
            <maml:para>If you use a list, the cmdlet will check that everything in the list has the same database schema. If there are no differences in schema, the cmdlet will create the Database Release. If there are any differences in schema, the cmdlet will fail and inform you.</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: AbortOnWarningLevel -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>AbortOnWarningLevel</maml:name>
          <maml:description>
            <maml:para>Use this parameter to set the minimum warning level that will cause the release generation operation to abort.</maml:para>
            <maml:para>Valid warning severity levels are:</maml:para>
            <maml:para>- High</maml:para>
            <maml:para>- Medium</maml:para>
            <maml:para>- Low</maml:para>
            <maml:para>- Information</maml:para>
            <maml:para>- None (do not abort for any warnings)</maml:para>
            <maml:para>The default setting is 'None'.</maml:para>
            <maml:para>Possible values: Information, Low, Medium, High, None</maml:para>
          </maml:description>
          <command:parameterValue required="true">WarningSeverity</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Shared.Domain.WarningSeverity</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">Information</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Low</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Medium</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">High</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: FilterPath -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>FilterPath</maml:name>
          <maml:description>
            <maml:para>The path to a .scpf filter file.</maml:para>
            <maml:para>Overrides any Filter.scpf file present in the Source schema with an alternative filter file to be used when generating the Update.sql change script and in all schema comparisons.</maml:para>
            <maml:para>This parameter will be ignored if the value specified is $null or empty.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: IgnoreAdditional -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>IgnoreAdditional</maml:name>
          <maml:description>
            <maml:para>Specifies whether to ignore additional objects in the target database. Enabling this prevents new and unexpected objects in the target being dropped - note that the checks and tests applied to this database may not have taken those objects into account and may therefore not be valid.</maml:para>
            <maml:para>This parameter can't be used simultaneously with filter files.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IgnoreParserErrors -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>IgnoreParserErrors</maml:name>
          <maml:description>
            <maml:para>Tells the SQL Compare engine to ignore parser errors.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IgnoreStaticData -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>IgnoreStaticData</maml:name>
          <maml:description>
            <maml:para>If you use Red Gate SQL Source Control, you can flag tables that contain static data. If you specify a scripts folder or NuGet package as the value of Source and a database connection object or string as the value of Target, by default SQL Change Automation compares the data in these tables when generating the update script. Use this parameter to ignore static data when comparing the databases.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IncludeIdenticalsInReport -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>IncludeIdenticalsInReport</maml:name>
          <maml:description>
            <maml:para>By default, the change report will show the number of identical objects, but won't show the full SQL for each object. Use this parameter to include the full SQL of identical objects.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: SQLCompareOptions -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>SQLCompareOptions</maml:name>
          <maml:description>
            <maml:para>Specifies the SQL Compare options to use when creating the update script and running pre- and post-deploy checks. SQL Change Automation applies a default set of options, listed below. To include additional options, specify a comma-delimited list of the option names (eg 'IgnoreComments, ObjectExistenceChecks'). To turn off a default option, precede the option name with a minus sign (eg '-ForceColumnOrder').</maml:para>
            <maml:para>This parameter will be ignored if the value specified is $null or empty.</maml:para>
            <maml:para>By default, the following Compare options are used:</maml:para>
            <maml:para>- ConsiderNextFilegroupInPartitionSchemes</maml:para>
            <maml:para>- DecryptPost2KEncryptedObjects</maml:para>
            <maml:para>- DoNotOutputCommentHeader</maml:para>
            <maml:para>- ForceColumnOrder</maml:para>
            <maml:para>- IgnoreCertificatesAndCryptoKeys</maml:para>
            <maml:para>- IgnoreDatabaseAndServerName</maml:para>
            <maml:para>- IgnoreTSQLT</maml:para>
            <maml:para>- IgnoreUsersPermissionsAndRoleMemberships</maml:para>
            <maml:para>- IgnoreUserProperties</maml:para>
            <maml:para>- IgnoreWhiteSpace</maml:para>
            <maml:para>- IgnoreWithElementOrder</maml:para>
            <maml:para>- IncludeDependencies</maml:para>
            <maml:para>- ThrowOnFileParseFailed</maml:para>
            <maml:para>- UseCompatibilityLevel</maml:para>
            <maml:para>For more information about SQL Compare options, see http://www.red-gate.com/sca/ps/help/compareoptions.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: TransactionIsolationLevel -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>TransactionIsolationLevel</maml:name>
          <maml:description>
            <maml:para>The isolation level for the transactions used in the update script. Permitted values are Serializable, Snapshot, RepeatableRead, ReadCommitted and ReadUncommitted. The default level is Serializable.</maml:para>
            <maml:para>See http://msdn.microsoft.com/en-gb/library/ms173763.aspx for more details on transaction isolation levels.</maml:para>
            <maml:para>Possible values: Serializable, Snapshot, RepeatableRead, ReadCommitted, ReadUncommitted</maml:para>
          </maml:description>
          <command:parameterValue required="true">TransactionIsolationLevel</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Shared.Domain.TransactionIsolationLevel</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>Serializable</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">Serializable</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Snapshot</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">RepeatableRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadCommitted</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadUncommitted</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: Source -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>Source</maml:name>
        <maml:description>
          <maml:para>The schema you want to update databases to. This can be:</maml:para>
          <maml:para>- a Database Connection object created by the New-DatabaseConnection cmdlet</maml:para>
          <maml:para>- a database connection string</maml:para>
          <maml:para>- a path for a NuGet package or .zip file. This must contain a scripts folder located at db\state</maml:para>
          <maml:para>- a Database Build Artifact object produced by the New-DatabaseBuildArtifact cmdlet</maml:para>
          <maml:para>- a path for a scripts folder, created by SQL Compare or from your SQL Source Control database repository</maml:para>
        </maml:description>
        <command:parameterValue required="true">object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Target -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>Target</maml:name>
        <maml:description>
          <maml:para>A database schema you want to update from. This can be:</maml:para>
          <maml:para>- a Database Connection object created by the New-DatabaseConnection cmdlet</maml:para>
          <maml:para>- a database connection string</maml:para>
          <maml:para>- a path for a NuGet package or .zip file. This must contain a scripts folder located at db\state</maml:para>
          <maml:para>- a Database Build Artifact object produced by the New-DatabaseBuildArtifact cmdlet</maml:para>
          <maml:para>- a path for a scripts folder, created by SQL Compare or from your SQL Source Control database repository</maml:para>
          <maml:para>- a list containing one or more of the above</maml:para>
          <maml:para>If you use a list, the cmdlet will check that everything in the list has the same database schema. If there are no differences in schema, the cmdlet will create the Database Release. If there are any differences in schema, the cmdlet will fail and inform you.</maml:para>
        </maml:description>
        <command:parameterValue required="true">object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: FilterPath -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>FilterPath</maml:name>
        <maml:description>
          <maml:para>The path to a .scpf filter file.</maml:para>
          <maml:para>Overrides any Filter.scpf file present in the Source schema with an alternative filter file to be used when generating the Update.sql change script and in all schema comparisons.</maml:para>
          <maml:para>This parameter will be ignored if the value specified is $null or empty.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: IgnoreStaticData -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>IgnoreStaticData</maml:name>
        <maml:description>
          <maml:para>If you use Red Gate SQL Source Control, you can flag tables that contain static data. If you specify a scripts folder or NuGet package as the value of Source and a database connection object or string as the value of Target, by default SQL Change Automation compares the data in these tables when generating the update script. Use this parameter to ignore static data when comparing the databases.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: SQLCompareOptions -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>SQLCompareOptions</maml:name>
        <maml:description>
          <maml:para>Specifies the SQL Compare options to use when creating the update script and running pre- and post-deploy checks. SQL Change Automation applies a default set of options, listed below. To include additional options, specify a comma-delimited list of the option names (eg 'IgnoreComments, ObjectExistenceChecks'). To turn off a default option, precede the option name with a minus sign (eg '-ForceColumnOrder').</maml:para>
          <maml:para>This parameter will be ignored if the value specified is $null or empty.</maml:para>
          <maml:para>By default, the following Compare options are used:</maml:para>
          <maml:para>- ConsiderNextFilegroupInPartitionSchemes</maml:para>
          <maml:para>- DecryptPost2KEncryptedObjects</maml:para>
          <maml:para>- DoNotOutputCommentHeader</maml:para>
          <maml:para>- ForceColumnOrder</maml:para>
          <maml:para>- IgnoreCertificatesAndCryptoKeys</maml:para>
          <maml:para>- IgnoreDatabaseAndServerName</maml:para>
          <maml:para>- IgnoreTSQLT</maml:para>
          <maml:para>- IgnoreUsersPermissionsAndRoleMemberships</maml:para>
          <maml:para>- IgnoreUserProperties</maml:para>
          <maml:para>- IgnoreWhiteSpace</maml:para>
          <maml:para>- IgnoreWithElementOrder</maml:para>
          <maml:para>- IncludeDependencies</maml:para>
          <maml:para>- ThrowOnFileParseFailed</maml:para>
          <maml:para>- UseCompatibilityLevel</maml:para>
          <maml:para>For more information about SQL Compare options, see http://www.red-gate.com/sca/ps/help/compareoptions.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: IgnoreAdditional -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>IgnoreAdditional</maml:name>
        <maml:description>
          <maml:para>Specifies whether to ignore additional objects in the target database. Enabling this prevents new and unexpected objects in the target being dropped - note that the checks and tests applied to this database may not have taken those objects into account and may therefore not be valid.</maml:para>
          <maml:para>This parameter can't be used simultaneously with filter files.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: TransactionIsolationLevel -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>TransactionIsolationLevel</maml:name>
        <maml:description>
          <maml:para>The isolation level for the transactions used in the update script. Permitted values are Serializable, Snapshot, RepeatableRead, ReadCommitted and ReadUncommitted. The default level is Serializable.</maml:para>
          <maml:para>See http://msdn.microsoft.com/en-gb/library/ms173763.aspx for more details on transaction isolation levels.</maml:para>
          <maml:para>Possible values: Serializable, Snapshot, RepeatableRead, ReadCommitted, ReadUncommitted</maml:para>
        </maml:description>
        <command:parameterValue required="true">TransactionIsolationLevel</command:parameterValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Shared.Domain.TransactionIsolationLevel</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>Serializable</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">Serializable</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Snapshot</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">RepeatableRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadCommitted</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadUncommitted</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: IncludeIdenticalsInReport -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>IncludeIdenticalsInReport</maml:name>
        <maml:description>
          <maml:para>By default, the change report will show the number of identical objects, but won't show the full SQL for each object. Use this parameter to include the full SQL of identical objects.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: AbortOnWarningLevel -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>AbortOnWarningLevel</maml:name>
        <maml:description>
          <maml:para>Use this parameter to set the minimum warning level that will cause the release generation operation to abort.</maml:para>
          <maml:para>Valid warning severity levels are:</maml:para>
          <maml:para>- High</maml:para>
          <maml:para>- Medium</maml:para>
          <maml:para>- Low</maml:para>
          <maml:para>- Information</maml:para>
          <maml:para>- None (do not abort for any warnings)</maml:para>
          <maml:para>The default setting is 'None'.</maml:para>
          <maml:para>Possible values: Information, Low, Medium, High, None</maml:para>
        </maml:description>
        <command:parameterValue required="true">WarningSeverity</command:parameterValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Shared.Domain.WarningSeverity</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">Information</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Low</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Medium</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">High</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: IgnoreParserErrors -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>IgnoreParserErrors</maml:name>
        <maml:description>
          <maml:para>Tells the SQL Compare engine to ignore parser errors.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues>
      <!-- OutputType: IReleaseArtifact -->
      <command:returnValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.Domain.ReleaseArtifacts.IReleaseArtifact</maml:name>
          <maml:uri />
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>$staging = New-DatabaseConnection -ServerInstance "staging01\sql2017" -Database "Staging"
New-DatabaseReleaseArtifact -Source "C:\Work\buildArtifacts\DatabaseBuildArtifact.1.0.0.nupkg" -Target $staging</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to use a SQL Change Automation Build Artifact as a source.</maml:para>
          <maml:para>The New-DatabaseReleaseArtifact cmdlet uses a SQL Change Automation Build Artifact, DatabaseBuildArtifact.1.0.0.nupkg, as the Source parameter. The package must have been generated from a SQL Change Automation project using the New-DatabaseBuildArtifact cmdlet</maml:para>
          <maml:para>The Target parameter must be a connection string or a DatabaseConnection when using SQL Change Automation Projects.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>$staging = New-DatabaseConnection -ServerInstance "staging01\sql2014" -Database "Staging"
$buildArtifact = "C:\Work\buildArtifacts\MyDatabase.1.0.0.nupkg"
 
New-DatabaseReleaseArtifact -Source $buildArtifact -Target $staging</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to use a SQL Source Control Build Artifact to specify the source schema.</maml:para>
          <maml:para>The New-DatabaseReleaseArtifact cmdlet uses a NuGet database package, MyDatabase.1.0.0.nupkg, as the Source parameter. The package must contain a scripts folder in the db\state sub-folder.</maml:para>
          <maml:para>If the NuGet package includes tables that have been flagged as containing static data, this data will be included when generating the Release Artifact, unless the IgnoreStaticData parameter is specified.</maml:para>
          <maml:para>You can also specify a NuGet package as the Target parameter. However, if you do this, static data won't be deployed.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>$staging = New-DatabaseConnection -ServerInstance "staging01\sql2014" -Database "Staging"
$test = New-DatabaseConnection -ServerInstance "test01\sql2014" -Database "Test" -Username "AutomationUser" -Password "P@ssw0rd"
 
New-DatabaseReleaseArtifact -Source $test -Target $staging</dev:code>
        <dev:remarks>
          <maml:para>This example show how to create the database deployment resources using two database connections.</maml:para>
          <maml:para>The New-DatabaseConnection cmdlet creates two Database Connection objects, $staging and $test. $staging is used to connect to the Staging database on staging01\sql2014. $test is used to connect to the Test database on test01\sql2014.</maml:para>
          <maml:para>The New-DatabaseReleaseArtifact cmdlet uses $test as the Source parameter, and $staging as the Target parameter. The cmdlet creates the database deployment resources that can be used to update the schema of Staging (and any database with the same schema as Staging) to match the schema of Test.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 4 ----------</maml:title>
        <dev:code>$staging = New-DatabaseConnection -ServerInstance "staging01\sql2014" -Database "Staging"
$test = New-DatabaseConnection -ServerInstance "test01\sql2014" -Database "Test"
 
$options = "IgnoreComments, ObjectExistenceChecks, -ForceColumnOrder"
 
New-DatabaseReleaseArtifact -Source $test -Target $staging -SQLCompareOptions $options</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to specify the SQL Compare options that are used when generating the update script and running pre- and post-deploy checks.</maml:para>
          <maml:para>In this example, the $options variable specifies that IgnoreComments and ObjectExistenceChecks should be included in addition to the default set of SQL Compare options. The minus sign before ForceColumnOrder indicates that this default option will be turned off.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 5 ----------</maml:title>
        <dev:code>$staging = New-DatabaseConnection -ServerInstance "staging01\sql2014" -Database "Staging"
$test = New-DatabaseConnection -ServerInstance "test01\sql2014" -Database "Test"
 
$filter = "C:\Work\MyFilter.scpf"
 
New-DatabaseReleaseArtifact -Source $test -Target $staging -FilterPath $filter</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to use a specific filter file to include/exclude database objects when generating the update script, overriding any filter file present in the source schema.</maml:para>
          <maml:para>MyFilter.scpf defines which database objects are considered when the update script is generated. If this update is used, the filters will also be used in pre- and post-schema comparisons.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Use-DatabaseReleaseArtifact -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Use-DatabaseReleaseArtifact</command:name>
      <command:verb>Use</command:verb>
      <command:noun>DatabaseReleaseArtifact</command:noun>
      <maml:description>
        <maml:para>Uses the IReleaseArtifact object produced by the New-DatabaseReleaseArtifact cmdlet to update a target database.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Use-DatabaseReleaseArtifact cmdlet executes the SQL update script inside the database deployment resources produced by the New-DatabaseReleaseArtifact cmdlet. This updates the target database to the same state as the schema specified in the IReleaseArtifact object.</maml:para>
      <maml:para>Before executing the script, SQL Change Automation first checks that the target database schema matches the target schema defined in the IReleaseArtifact object. If the schemas don't match, SQL Change Automation will then check if the target database schema matches the source schema specified in the Use-DatabaseReleaseArtifact cmdlet. (This is to check if the update has already been applied and the target schema is already in the desired state). If these schemas also don't match, the cmdlet fails. If the checks show the target schema is already in the desired state, SQL Change Automation will skip running the SQL update script and the cmdlet will finish. To turn off these checks, use the SkipPreUpdateSchemaCheck parameter.</maml:para>
      <maml:para>The Use-DatabaseReleaseArtifact cmdlet then executes the SQL script to update the target database. It logs any errors that occur in the execution, but will continue executing the whole script unless the connection to the database is broken (for example, if the database goes offline).</maml:para>
      <maml:para>After executing the script, the cmdlet checks that the target database schema has updated correctly to the 'Source' schema specified in the New-DatabaseReleaseArtifact cmdlet. If the schema hasn't updated correctly, the cmdlet returns an error message. To turn off this check use the SkipPostUpdateSchemaCheck parameter.</maml:para>
      <maml:para>By default, SQL Change Automation deploys static data contained in a NuGet package, scripts folder or zip file; no data will be deployed from a live data source. The pre-update and post-update schema checks also check for differences in static data. To turn off the deployment of static data and to exclude static data from the schema checks, add IgnoreStaticData to the New-DatabaseReleaseArtifact command. For more information about static data, see http://www.red-gate.com/sca/ps/help/staticdata.</maml:para>
      <maml:para>If the database deployment resources contain a filter, this will be applied to the pre-deployment and post-deployment schema checks; only differences between objects included by the filter will cause the check to fail. For more information about filters, see http://www.red-gate.com/sca/ps/help/filters.</maml:para>
      <maml:para>The SQL Compare options specified in the IReleaseArtifact object will be used in the schema comparison checks before and after running the update. For more information about SQL Compare options, see http://www.red-gate.com/sca/ps/help/compareoptions.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: AbortOnWarningLevel -->
      <command:syntaxItem>
        <maml:name>Use-DatabaseReleaseArtifact</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The Release Artifact to be deployed.</maml:para>
          </maml:description>
          <command:parameterValue required="true">IReleaseArtifact</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Compare.Domain.ReleaseArtifacts.IReleaseArtifact</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: DeployTo -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>DeployTo</maml:name>
          <maml:description>
            <maml:para>A Database Connection object or database connection string that identifies the target database to be updated. See New-DatabaseConnection for details.</maml:para>
          </maml:description>
          <command:parameterValue required="true">DatabaseConnection</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Compare.SchemaSources.DatabaseConnection</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: AbortOnWarningLevel -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>AbortOnWarningLevel</maml:name>
          <maml:description>
            <maml:para>Use this parameter to set the minimum warning level that will cause the release execution operation to abort.</maml:para>
            <maml:para>Valid warning severity levels are:</maml:para>
            <maml:para>- High</maml:para>
            <maml:para>- Medium</maml:para>
            <maml:para>- Low</maml:para>
            <maml:para>- Information</maml:para>
            <maml:para>- None (do not abort for any warnings)</maml:para>
            <maml:para>The default setting is 'None'.</maml:para>
            <maml:para>Possible values: Information, Low, Medium, High, None</maml:para>
          </maml:description>
          <command:parameterValue required="true">WarningSeverity</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Shared.Domain.WarningSeverity</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">Information</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Low</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Medium</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">High</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: DisableMonitorAnnotation -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>DisableMonitorAnnotation</maml:name>
          <maml:description>
            <maml:para>Don't add annotations to the event log for SQL Monitor.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: QueryBatchTimeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>QueryBatchTimeout</maml:name>
          <maml:description>
            <maml:para>The execution timeout, in seconds, for each batch of queries in the update script. The default value is 30 seconds. A value of zero indicates that no execution timeout will be enforced.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>30</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: SkipPostUpdateSchemaCheck -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>SkipPostUpdateSchemaCheck</maml:name>
          <maml:description>
            <maml:para>Don't check that the target database has the correct schema after the update has run.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: SkipPreUpdateSchemaCheck -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>SkipPreUpdateSchemaCheck</maml:name>
          <maml:description>
            <maml:para>Before running the update script, don't check that the target database has the correct schema or that the target database has already been updated.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: InputObject -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>The Release Artifact to be deployed.</maml:para>
        </maml:description>
        <command:parameterValue required="true">IReleaseArtifact</command:parameterValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.Domain.ReleaseArtifacts.IReleaseArtifact</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: DeployTo -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>DeployTo</maml:name>
        <maml:description>
          <maml:para>A Database Connection object or database connection string that identifies the target database to be updated. See New-DatabaseConnection for details.</maml:para>
        </maml:description>
        <command:parameterValue required="true">DatabaseConnection</command:parameterValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.SchemaSources.DatabaseConnection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SkipPreUpdateSchemaCheck -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>SkipPreUpdateSchemaCheck</maml:name>
        <maml:description>
          <maml:para>Before running the update script, don't check that the target database has the correct schema or that the target database has already been updated.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: SkipPostUpdateSchemaCheck -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>SkipPostUpdateSchemaCheck</maml:name>
        <maml:description>
          <maml:para>Don't check that the target database has the correct schema after the update has run.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: QueryBatchTimeout -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>QueryBatchTimeout</maml:name>
        <maml:description>
          <maml:para>The execution timeout, in seconds, for each batch of queries in the update script. The default value is 30 seconds. A value of zero indicates that no execution timeout will be enforced.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>30</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: AbortOnWarningLevel -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>AbortOnWarningLevel</maml:name>
        <maml:description>
          <maml:para>Use this parameter to set the minimum warning level that will cause the release execution operation to abort.</maml:para>
          <maml:para>Valid warning severity levels are:</maml:para>
          <maml:para>- High</maml:para>
          <maml:para>- Medium</maml:para>
          <maml:para>- Low</maml:para>
          <maml:para>- Information</maml:para>
          <maml:para>- None (do not abort for any warnings)</maml:para>
          <maml:para>The default setting is 'None'.</maml:para>
          <maml:para>Possible values: Information, Low, Medium, High, None</maml:para>
        </maml:description>
        <command:parameterValue required="true">WarningSeverity</command:parameterValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Shared.Domain.WarningSeverity</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">Information</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Low</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Medium</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">High</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: DisableMonitorAnnotation -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>DisableMonitorAnnotation</maml:name>
        <maml:description>
          <maml:para>Don't add annotations to the event log for SQL Monitor.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.Domain.ReleaseArtifacts.IReleaseArtifact</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The Release Artifact to be deployed.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <!-- OutputType: None -->
      <command:returnValue>
        <dev:type>
          <maml:name>None</maml:name>
          <maml:uri />
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>$production = New-DatabaseConnection -ServerInstance "prod01\sql2014" -Database "Production" -Username "AutomationUser" -Password "P@ssw0rd"
$build = Import-DatabaseBuildArtifact "C:\Work\buildArtifacts\DatabaseBuildArtifact.1.0.0.nupkg"
 
$update = New-DatabaseReleaseArtifact -Source $build -Target $production
 
Use-DatabaseReleaseArtifact $update -DeployTo $production</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to update a database based on a SQL Change Automation Build Artifact, DatabaseBuildArtifact.1.0.0.nupkg.</maml:para>
          <maml:para>This cmdlet runs the targeted deployment script contained in the IReleaseArtifact, which updates the database "Production".</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>$staging = New-DatabaseConnection -ServerInstance "staging01\sql2014" -Database "Staging" -Username "AutomationUser" -Password "P@ssw0rd"
$buildArtifact = "C:\Work\buildArtifacts\MyDatabase.1.0.0.nupkg"
 
$update = New-DatabaseReleaseArtifact -Source $buildArtifact -Target $staging
 
Use-DatabaseReleaseArtifact $update -DeployTo $staging</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to update a database based on a SQL Source Control Build Artifact, MyDatabase.1.0.0.nupkg.</maml:para>
          <maml:para>The New-DatabaseReleaseArtifact cmdlet creates the database deployment resources. It uses the database, Staging, as the Target parameter: this is the schema to be updated. It uses a NuGet package containing a scripts folder, database.nupkg, as the Source parameter: this is the schema that Staging will be updated to.</maml:para>
          <maml:para>The IReleaseArtifact object, $update, is then passed to the Use-DatabaseReleaseArtifact cmdlet. This cmdlet runs the SQL update script contained in $update, which updates Staging to the schema contained in database.nupkg.</maml:para>
          <maml:para>Before running the SQL update script, Use-DatabaseReleaseArtifact checks that Staging still has the same schema that it did at the time that $update was created. It then runs the script, and afterwards, checks that the update was successful and that Staging has the correct new schema.</maml:para>
          <maml:para>If $package contains static data, SQL Change Automation will deploy it to the $staging database. The pre-deployment and post-deployment schema checks also check for differences in static data. To turn off the deployment of static data and to exclude static data from the schema checks, add the IgnoreStaticData parameter to New-DatabaseReleaseArtifact.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>$staging = New-DatabaseConnection -ServerInstance "staging01\sql2014" -Database "Staging" -Username "AutomationUser" -Password "P@ssw0rd"
$buildArtifact = "C:\Work\buildArtifacts\MyDatabase.1.0.0.nupkg"
 
$update = New-DatabaseReleaseArtifact -Source $buildArtifact -Target $staging
 
Use-DatabaseReleaseArtifact $update -DeployTo $staging -SkipPostUpdateSchemaCheck</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to skip the post-deployment check that verifies the target database matches the source.</maml:para>
          <maml:para>The Use-DatabaseReleaseArtifact cmdlet updates the database, Staging, to match the schema contained in the NuGet package, database.nupkg. The SkipPostUpdateSchemaCheck parameter is used to skip the post-update schema check.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 4 ----------</maml:title>
        <dev:code>$staging = New-DatabaseConnection -ServerInstance "staging01\sql2014" -Database "Staging" -Username "AutomationUser" -Password "P@ssw0rd"
 
Import-DatabaseReleaseArtifact -Path "C:\Work\DatabaseRelease" | Use-DatabaseReleaseArtifact -DeployTo $staging</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to use the Import-DatabaseReleaseArtifact cmdlet to import the database deployment resources from a folder created previously by the Export-DatabaseReleaseArtifact cmdlet. The database, Staging, is updated to the schema specified by the IReleaseArtifact object.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Sync-DatabaseSchema -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Sync-DatabaseSchema</command:name>
      <command:verb>Sync</command:verb>
      <command:noun>DatabaseSchema</command:noun>
      <maml:description>
        <maml:para>Updates a target database schema to match a source database schema.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Sync-DatabaseSchema cmdlet updates a target database to match a source database schema.</maml:para>
      <maml:para>The source schema can be a database connection, a NuGet package, or a scripts folder. The target schema must be a database connection.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: AbortOnWarningLevel -->
      <command:syntaxItem>
        <maml:name>Sync-DatabaseSchema</maml:name>
        <!-- Parameter: Source -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Source</maml:name>
          <maml:description>
            <maml:para>The source database schema used to update the target database. This can be:</maml:para>
            <maml:para>- a Database Connection object created by the New-DatabaseConnection cmdlet</maml:para>
            <maml:para>- a database connection string</maml:para>
            <maml:para>- a path for a NuGet package or .zip file. This must contain a scripts folder located at db\state</maml:para>
            <maml:para>- a Database Build Artifact object produced by the New-DatabaseBuildArtifact cmdlet</maml:para>
            <maml:para>- a path for a scripts folder, created by SQL Compare or from your SQL Source Control database repository</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Target -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Target</maml:name>
          <maml:description>
            <maml:para>The target database to be updated. This can be:</maml:para>
            <maml:para>- a Database Connection object created by the New-DatabaseConnection cmdlet</maml:para>
            <maml:para>- a database connection string</maml:para>
          </maml:description>
          <command:parameterValue required="true">DatabaseConnection</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Compare.SchemaSources.DatabaseConnection</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: AbortOnWarningLevel -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>AbortOnWarningLevel</maml:name>
          <maml:description>
            <maml:para>Use this parameter to set the minimum warning level that will cause the sync operation to abort.</maml:para>
            <maml:para>Valid warning severity levels are:</maml:para>
            <maml:para>- High</maml:para>
            <maml:para>- Medium</maml:para>
            <maml:para>- Low</maml:para>
            <maml:para>- Information</maml:para>
            <maml:para>- None (do not abort for any warnings)</maml:para>
            <maml:para>The default setting is 'High'.</maml:para>
            <maml:para>This parameter can't be used in addition to the Force parameter.</maml:para>
            <maml:para>Possible values: Information, Low, Medium, High, None</maml:para>
          </maml:description>
          <command:parameterValue required="true">WarningSeverity</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Shared.Domain.WarningSeverity</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>High</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">Information</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Low</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Medium</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">High</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
        <!-- Parameter: FilterPath -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>FilterPath</maml:name>
          <maml:description>
            <maml:para>The path to a .scpf filter file.</maml:para>
            <maml:para>Use this parameter to specify a filter file to be used when performing the sync operation. This will override any Filter.scpf file in the source.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: IgnoreAdditional -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>IgnoreAdditional</maml:name>
          <maml:description>
            <maml:para>When SQL Change Automation performs a sync operation, by default it will drop all additional objects in the target database.</maml:para>
            <maml:para>If you specify this parameter, additional objects will be ignored.</maml:para>
            <maml:para>Enabling this prevents new and unexpected objects in the target being dropped - note that the checks and tests applied to this database may not have taken those objects into account and may therefore not be valid.</maml:para>
            <maml:para>This parameter can't be used simultaneously with filter files.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IgnoreParserErrors -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>IgnoreParserErrors</maml:name>
          <maml:description>
            <maml:para>Use this parameter to force the SQL Compare engine to ignore any parser errors.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IgnoreStaticData -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>IgnoreStaticData</maml:name>
          <maml:description>
            <maml:para>When SQL Change Automation performs a sync operation and the source is a NuGet package or a scripts folder, by default it will include static data flagged by SQL Source Control.</maml:para>
            <maml:para>If you specify this parameter, static data will be ignored.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: QueryBatchTimeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>QueryBatchTimeout</maml:name>
          <maml:description>
            <maml:para>The execution timeout, in seconds, for each batch of queries during the sync operation. The default value is 30 seconds. A value of zero indicates that no execution timeout will be enforced.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: SQLCompareOptions -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>SQLCompareOptions</maml:name>
          <maml:description>
            <maml:para>Specifies the SQL Compare options to use when performing the sync operation. SQL Change Automation applies a default set of options (listed below). To include additional options, specify a comma-delimited list of the option names (eg 'IgnoreComments, ObjectExistenceChecks'). To turn off a default option, precede the option name with a minus sign (eg '-ForceColumnOrder').</maml:para>
            <maml:para>This parameter will be ignored if the value specified is $null or empty.</maml:para>
            <maml:para>By default, the following Compare options are used:</maml:para>
            <maml:para>- ConsiderNextFilegroupInPartitionSchemes</maml:para>
            <maml:para>- DecryptPost2KEncryptedObjects</maml:para>
            <maml:para>- DoNotOutputCommentHeader</maml:para>
            <maml:para>- ForceColumnOrder</maml:para>
            <maml:para>- IgnoreCertificatesAndCryptoKeys</maml:para>
            <maml:para>- IgnoreDatabaseAndServerName</maml:para>
            <maml:para>- IgnoreTSQLT</maml:para>
            <maml:para>- IgnoreUsersPermissionsAndRoleMemberships</maml:para>
            <maml:para>- IgnoreUserProperties</maml:para>
            <maml:para>- IgnoreWhiteSpace</maml:para>
            <maml:para>- IgnoreWithElementOrder</maml:para>
            <maml:para>- IncludeDependencies</maml:para>
            <maml:para>- ThrowOnFileParseFailed</maml:para>
            <maml:para>- UseCompatibilityLevel</maml:para>
            <maml:para>For more information about SQL Compare options, see http://www.red-gate.com/sca/ps/help/compareoptions.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: TransactionIsolationLevel -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>TransactionIsolationLevel</maml:name>
          <maml:description>
            <maml:para>Use this parameter to specify the isolation level for the transactions during the sync operation. Permitted values are: Serializable, Snapshot, RepeatableRead, ReadCommitted and ReadUncommitted. The default level is Serializable.</maml:para>
            <maml:para>See http://msdn.microsoft.com/en-gb/library/ms173763.aspx for more details on transaction isolation levels.</maml:para>
            <maml:para>Possible values: Serializable, Snapshot, RepeatableRead, ReadCommitted, ReadUncommitted</maml:para>
          </maml:description>
          <command:parameterValue required="true">TransactionIsolationLevel</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Shared.Domain.TransactionIsolationLevel</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>Serializable</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">Serializable</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Snapshot</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">RepeatableRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadCommitted</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadUncommitted</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: Force -->
      <command:syntaxItem>
        <maml:name>Sync-DatabaseSchema</maml:name>
        <!-- Parameter: Source -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Source</maml:name>
          <maml:description>
            <maml:para>The source database schema used to update the target database. This can be:</maml:para>
            <maml:para>- a Database Connection object created by the New-DatabaseConnection cmdlet</maml:para>
            <maml:para>- a database connection string</maml:para>
            <maml:para>- a path for a NuGet package or .zip file. This must contain a scripts folder located at db\state</maml:para>
            <maml:para>- a Database Build Artifact object produced by the New-DatabaseBuildArtifact cmdlet</maml:para>
            <maml:para>- a path for a scripts folder, created by SQL Compare or from your SQL Source Control database repository</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Target -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>Target</maml:name>
          <maml:description>
            <maml:para>The target database to be updated. This can be:</maml:para>
            <maml:para>- a Database Connection object created by the New-DatabaseConnection cmdlet</maml:para>
            <maml:para>- a database connection string</maml:para>
          </maml:description>
          <command:parameterValue required="true">DatabaseConnection</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Compare.SchemaSources.DatabaseConnection</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: FilterPath -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>FilterPath</maml:name>
          <maml:description>
            <maml:para>The path to a .scpf filter file.</maml:para>
            <maml:para>Use this parameter to specify a filter file to be used when performing the sync operation. This will override any Filter.scpf file in the source.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Use this parameter to prevent the sync operation from aborting regardless of any warnings.</maml:para>
            <maml:para>An alternative way of doing this is to set the AbortOnWarningLevel to 'None'.</maml:para>
            <maml:para>This parameter can't be used in addition to the AbortOnWarningLevel parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IgnoreAdditional -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>IgnoreAdditional</maml:name>
          <maml:description>
            <maml:para>When SQL Change Automation performs a sync operation, by default it will drop all additional objects in the target database.</maml:para>
            <maml:para>If you specify this parameter, additional objects will be ignored.</maml:para>
            <maml:para>Enabling this prevents new and unexpected objects in the target being dropped - note that the checks and tests applied to this database may not have taken those objects into account and may therefore not be valid.</maml:para>
            <maml:para>This parameter can't be used simultaneously with filter files.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IgnoreParserErrors -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>IgnoreParserErrors</maml:name>
          <maml:description>
            <maml:para>Use this parameter to force the SQL Compare engine to ignore any parser errors.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IgnoreStaticData -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>IgnoreStaticData</maml:name>
          <maml:description>
            <maml:para>When SQL Change Automation performs a sync operation and the source is a NuGet package or a scripts folder, by default it will include static data flagged by SQL Source Control.</maml:para>
            <maml:para>If you specify this parameter, static data will be ignored.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: QueryBatchTimeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>QueryBatchTimeout</maml:name>
          <maml:description>
            <maml:para>The execution timeout, in seconds, for each batch of queries during the sync operation. The default value is 30 seconds. A value of zero indicates that no execution timeout will be enforced.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>0</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: SQLCompareOptions -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>SQLCompareOptions</maml:name>
          <maml:description>
            <maml:para>Specifies the SQL Compare options to use when performing the sync operation. SQL Change Automation applies a default set of options (listed below). To include additional options, specify a comma-delimited list of the option names (eg 'IgnoreComments, ObjectExistenceChecks'). To turn off a default option, precede the option name with a minus sign (eg '-ForceColumnOrder').</maml:para>
            <maml:para>This parameter will be ignored if the value specified is $null or empty.</maml:para>
            <maml:para>By default, the following Compare options are used:</maml:para>
            <maml:para>- ConsiderNextFilegroupInPartitionSchemes</maml:para>
            <maml:para>- DecryptPost2KEncryptedObjects</maml:para>
            <maml:para>- DoNotOutputCommentHeader</maml:para>
            <maml:para>- ForceColumnOrder</maml:para>
            <maml:para>- IgnoreCertificatesAndCryptoKeys</maml:para>
            <maml:para>- IgnoreDatabaseAndServerName</maml:para>
            <maml:para>- IgnoreTSQLT</maml:para>
            <maml:para>- IgnoreUsersPermissionsAndRoleMemberships</maml:para>
            <maml:para>- IgnoreUserProperties</maml:para>
            <maml:para>- IgnoreWhiteSpace</maml:para>
            <maml:para>- IgnoreWithElementOrder</maml:para>
            <maml:para>- IncludeDependencies</maml:para>
            <maml:para>- ThrowOnFileParseFailed</maml:para>
            <maml:para>- UseCompatibilityLevel</maml:para>
            <maml:para>For more information about SQL Compare options, see http://www.red-gate.com/sca/ps/help/compareoptions.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: TransactionIsolationLevel -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>TransactionIsolationLevel</maml:name>
          <maml:description>
            <maml:para>Use this parameter to specify the isolation level for the transactions during the sync operation. Permitted values are: Serializable, Snapshot, RepeatableRead, ReadCommitted and ReadUncommitted. The default level is Serializable.</maml:para>
            <maml:para>See http://msdn.microsoft.com/en-gb/library/ms173763.aspx for more details on transaction isolation levels.</maml:para>
            <maml:para>Possible values: Serializable, Snapshot, RepeatableRead, ReadCommitted, ReadUncommitted</maml:para>
          </maml:description>
          <command:parameterValue required="true">TransactionIsolationLevel</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Shared.Domain.TransactionIsolationLevel</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>Serializable</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">Serializable</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">Snapshot</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">RepeatableRead</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadCommitted</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">ReadUncommitted</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: Source -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>Source</maml:name>
        <maml:description>
          <maml:para>The source database schema used to update the target database. This can be:</maml:para>
          <maml:para>- a Database Connection object created by the New-DatabaseConnection cmdlet</maml:para>
          <maml:para>- a database connection string</maml:para>
          <maml:para>- a path for a NuGet package or .zip file. This must contain a scripts folder located at db\state</maml:para>
          <maml:para>- a Database Build Artifact object produced by the New-DatabaseBuildArtifact cmdlet</maml:para>
          <maml:para>- a path for a scripts folder, created by SQL Compare or from your SQL Source Control database repository</maml:para>
        </maml:description>
        <command:parameterValue required="true">object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Target -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>Target</maml:name>
        <maml:description>
          <maml:para>The target database to be updated. This can be:</maml:para>
          <maml:para>- a Database Connection object created by the New-DatabaseConnection cmdlet</maml:para>
          <maml:para>- a database connection string</maml:para>
        </maml:description>
        <command:parameterValue required="true">DatabaseConnection</command:parameterValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.SchemaSources.DatabaseConnection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: FilterPath -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>FilterPath</maml:name>
        <maml:description>
          <maml:para>The path to a .scpf filter file.</maml:para>
          <maml:para>Use this parameter to specify a filter file to be used when performing the sync operation. This will override any Filter.scpf file in the source.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: IgnoreStaticData -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>IgnoreStaticData</maml:name>
        <maml:description>
          <maml:para>When SQL Change Automation performs a sync operation and the source is a NuGet package or a scripts folder, by default it will include static data flagged by SQL Source Control.</maml:para>
          <maml:para>If you specify this parameter, static data will be ignored.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: IgnoreAdditional -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>IgnoreAdditional</maml:name>
        <maml:description>
          <maml:para>When SQL Change Automation performs a sync operation, by default it will drop all additional objects in the target database.</maml:para>
          <maml:para>If you specify this parameter, additional objects will be ignored.</maml:para>
          <maml:para>Enabling this prevents new and unexpected objects in the target being dropped - note that the checks and tests applied to this database may not have taken those objects into account and may therefore not be valid.</maml:para>
          <maml:para>This parameter can't be used simultaneously with filter files.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: SQLCompareOptions -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>SQLCompareOptions</maml:name>
        <maml:description>
          <maml:para>Specifies the SQL Compare options to use when performing the sync operation. SQL Change Automation applies a default set of options (listed below). To include additional options, specify a comma-delimited list of the option names (eg 'IgnoreComments, ObjectExistenceChecks'). To turn off a default option, precede the option name with a minus sign (eg '-ForceColumnOrder').</maml:para>
          <maml:para>This parameter will be ignored if the value specified is $null or empty.</maml:para>
          <maml:para>By default, the following Compare options are used:</maml:para>
          <maml:para>- ConsiderNextFilegroupInPartitionSchemes</maml:para>
          <maml:para>- DecryptPost2KEncryptedObjects</maml:para>
          <maml:para>- DoNotOutputCommentHeader</maml:para>
          <maml:para>- ForceColumnOrder</maml:para>
          <maml:para>- IgnoreCertificatesAndCryptoKeys</maml:para>
          <maml:para>- IgnoreDatabaseAndServerName</maml:para>
          <maml:para>- IgnoreTSQLT</maml:para>
          <maml:para>- IgnoreUsersPermissionsAndRoleMemberships</maml:para>
          <maml:para>- IgnoreUserProperties</maml:para>
          <maml:para>- IgnoreWhiteSpace</maml:para>
          <maml:para>- IgnoreWithElementOrder</maml:para>
          <maml:para>- IncludeDependencies</maml:para>
          <maml:para>- ThrowOnFileParseFailed</maml:para>
          <maml:para>- UseCompatibilityLevel</maml:para>
          <maml:para>For more information about SQL Compare options, see http://www.red-gate.com/sca/ps/help/compareoptions.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: TransactionIsolationLevel -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>TransactionIsolationLevel</maml:name>
        <maml:description>
          <maml:para>Use this parameter to specify the isolation level for the transactions during the sync operation. Permitted values are: Serializable, Snapshot, RepeatableRead, ReadCommitted and ReadUncommitted. The default level is Serializable.</maml:para>
          <maml:para>See http://msdn.microsoft.com/en-gb/library/ms173763.aspx for more details on transaction isolation levels.</maml:para>
          <maml:para>Possible values: Serializable, Snapshot, RepeatableRead, ReadCommitted, ReadUncommitted</maml:para>
        </maml:description>
        <command:parameterValue required="true">TransactionIsolationLevel</command:parameterValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Shared.Domain.TransactionIsolationLevel</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>Serializable</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">Serializable</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Snapshot</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">RepeatableRead</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadCommitted</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">ReadUncommitted</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: QueryBatchTimeout -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>QueryBatchTimeout</maml:name>
        <maml:description>
          <maml:para>The execution timeout, in seconds, for each batch of queries during the sync operation. The default value is 30 seconds. A value of zero indicates that no execution timeout will be enforced.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>0</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: AbortOnWarningLevel -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>AbortOnWarningLevel</maml:name>
        <maml:description>
          <maml:para>Use this parameter to set the minimum warning level that will cause the sync operation to abort.</maml:para>
          <maml:para>Valid warning severity levels are:</maml:para>
          <maml:para>- High</maml:para>
          <maml:para>- Medium</maml:para>
          <maml:para>- Low</maml:para>
          <maml:para>- Information</maml:para>
          <maml:para>- None (do not abort for any warnings)</maml:para>
          <maml:para>The default setting is 'High'.</maml:para>
          <maml:para>This parameter can't be used in addition to the Force parameter.</maml:para>
          <maml:para>Possible values: Information, Low, Medium, High, None</maml:para>
        </maml:description>
        <command:parameterValue required="true">WarningSeverity</command:parameterValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Shared.Domain.WarningSeverity</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>High</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">Information</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Low</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">Medium</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">High</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">None</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: Force -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Force</maml:name>
        <maml:description>
          <maml:para>Use this parameter to prevent the sync operation from aborting regardless of any warnings.</maml:para>
          <maml:para>An alternative way of doing this is to set the AbortOnWarningLevel to 'None'.</maml:para>
          <maml:para>This parameter can't be used in addition to the AbortOnWarningLevel parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: IgnoreParserErrors -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>IgnoreParserErrors</maml:name>
        <maml:description>
          <maml:para>Use this parameter to force the SQL Compare engine to ignore any parser errors.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues>
      <!-- OutputType: DatabaseSyncResult -->
      <command:returnValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.Domain.DatabaseSyncResult</maml:name>
          <maml:uri />
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>$scriptsFolder = "C:\Work\scripts"
$test = New-DatabaseConnection -ServerInstance "test01\sql2014" -Database "Test" -Username "AutomationUser" -Password "P@ssw0rd"
 
Sync-DatabaseSchema -Source $scriptsFolder -Target $test</dev:code>
        <dev:remarks>
          <maml:para>This example show how to update a test database to match a scripts folder.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>$validatedProject = Invoke-DatabaseBuild "C:\Work\scripts"
$test = New-DatabaseConnection -ServerInstance "test01\sql2014" -Database "Test" -Username "AutomationUser" -Password "P@ssw0rd"
 
Sync-DatabaseSchema -Source $validatedProject -Target $test</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to update a test database to match a validated scripts folder.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>$scriptsFolder = "C:\Work\scripts"
$test = New-DatabaseConnection -ServerInstance "test01\sql2014" -Database "Test" -Username "AutomationUser" -Password "P@ssw0rd"
 
Sync-DatabaseSchema -Source $scriptsFolder -Target $test -AbortOnWarningLevel Medium</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to abort the update if there are any warnings at medium level or above.</maml:para>
          <maml:para>Set the -AbortOnWarningLevel parameter to 'None' or use the Force parameter if you want the cmdlet to ignore all warnings.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 4 ----------</maml:title>
        <dev:code>$scriptsFolder = "C:\Work\scripts"
$test = New-DatabaseConnection -ServerInstance "test01\sql2014" -Database "Test" -Username "AutomationUser" -Password "P@ssw0rd"
 
$syncResult = Sync-DatabaseSchema -Source $scriptsFolder -Target $test
$syncResult.UpdateSql | Out-File -FilePath "C:\Export\update.sql"</dev:code>
        <dev:remarks>
          <maml:para>This example show how to write the updateScript that was run to a file.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 5 ----------</maml:title>
        <dev:code>$scriptsFolder = "C:\Work\scripts"
$test = New-DatabaseConnection -ServerInstance "test01\sql2014" -Database "Test" -Username "AutomationUser" -Password "P@ssw0rd"
 
$options = "IgnoreComments, ObjectExistenceChecks, -ForceColumnOrder"
 
Sync-DatabaseSchema -Source $scriptsFolder -Target $test -SQLCompareOptions $options</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to specify SQL Compare options to use when performing the sync operation.</maml:para>
          <maml:para>In this example, the $options variable specifies that the IgnoreComments and ObjectExistenceChecks options should be included in addition to the default set of SQL Compare options. The minus sign before the ForceColumnOrder parameter indicates that this default option will be turned off.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Export-DatabaseTestResults -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Export-DatabaseTestResults</command:name>
      <command:verb>Export</command:verb>
      <command:noun>DatabaseTestResults</command:noun>
      <maml:description>
        <maml:para>Exports a TestResults object to disk.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Export-DatabaseTestResults cmdlet takes a TestResults results object produced by the Invoke-DatabaseTests cmdlet and exports it to a JUnit or MsTest file.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>Export-DatabaseTestResults</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The TestResults object to be exported.</maml:para>
          </maml:description>
          <command:parameterValue required="true">TestResults</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Compare.SchemaTesting.TestResults</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: OutputFile -->
        <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
          <maml:name>OutputFile</maml:name>
          <maml:description>
            <maml:para>The file path to export the TestResults to.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: Force -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Force</maml:name>
          <maml:description>
            <maml:para>Use this parameter to overwrite any existing file specified by OutputFile.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: Format -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>Format</maml:name>
          <maml:description>
            <maml:para>The format of the TestResults file. This can be JUnit or MsTest.</maml:para>
            <maml:para>If you don't use this parameter, or if you set it to Default, the format will be chosen automatically depending on the file extension of the OutputFile.</maml:para>
            <maml:para>Possible values: Default, JUnit, MsTest</maml:para>
          </maml:description>
          <command:parameterValue required="true">TestResultsFormat</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Compare.SchemaTesting.Export.TestResultsFormat</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>Default</dev:defaultValue>
          <command:parameterValueGroup>
            <command:parameterValue required="false" variableLength="false">Default</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">JUnit</command:parameterValue>
            <command:parameterValue required="false" variableLength="false">MsTest</command:parameterValue>
          </command:parameterValueGroup>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: InputObject -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>The TestResults object to be exported.</maml:para>
        </maml:description>
        <command:parameterValue required="true">TestResults</command:parameterValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.SchemaTesting.TestResults</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: OutputFile -->
      <command:parameter required="true" globbing="false" pipelineInput="false" position="named">
        <maml:name>OutputFile</maml:name>
        <maml:description>
          <maml:para>The file path to export the TestResults to.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: Format -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Format</maml:name>
        <maml:description>
          <maml:para>The format of the TestResults file. This can be JUnit or MsTest.</maml:para>
          <maml:para>If you don't use this parameter, or if you set it to Default, the format will be chosen automatically depending on the file extension of the OutputFile.</maml:para>
          <maml:para>Possible values: Default, JUnit, MsTest</maml:para>
        </maml:description>
        <command:parameterValue required="true">TestResultsFormat</command:parameterValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.SchemaTesting.Export.TestResultsFormat</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>Default</dev:defaultValue>
        <command:parameterValueGroup>
          <command:parameterValue required="false" variableLength="false">Default</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">JUnit</command:parameterValue>
          <command:parameterValue required="false" variableLength="false">MsTest</command:parameterValue>
        </command:parameterValueGroup>
      </command:parameter>
      <!-- Parameter: Force -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>Force</maml:name>
        <maml:description>
          <maml:para>Use this parameter to overwrite any existing file specified by OutputFile.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.SchemaTesting.TestResults</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The TestResults object to be exported.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <!-- OutputType: None -->
      <command:returnValue>
        <dev:type>
          <maml:name>None</maml:name>
          <maml:uri />
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>$testResultsFile = "C:\Export\scripts.junit.xml"
$results = Invoke-DatabaseTests "C:\Work\testproject\AdventureWorks2014.Database.Tests\AdventureWorks2014.Database.Tests.sqlproj"
Export-DatabaseTestResults $results -OutputFile $testResultsFile</dev:code>
        <dev:remarks>
          <maml:para>This example demonstrates the simplest use of Export-DatabaseTestResults with a SQL Change Automation project, only specifying the OutputFile parameter to export the results of the tests to a JUnit file.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>$testResultsFile = "C:\Export\scripts.junit.xml"
$results = Invoke-DatabaseTests "C:\Work\Scripts"
Export-DatabaseTestResults $results -OutputFile $testResultsFile</dev:code>
        <dev:remarks>
          <maml:para>This example demonstrates the simplest use of Export-DatabaseTestResults with a SQL Source Control project, only specifying the OutputFile parameter to export the results of the tests to a JUnit file.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>$testResultsFile = "C:\Export\scripts.xml"
Invoke-DatabaseTests "C:\Work\testproject\AdventureWorks2014.Database.Tests\AdventureWorks2014.Database.Tests.sqlproj" | Export-DatabaseTestResults -OutputFile $testResultsFile -Format MSTest</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to specify the format of the test results file. This can be JUnit or MSTest.</maml:para>
          <maml:para>If you don't use the Format parameter, or if you set it to Default, the format will be chosen automatically depending on the file extension of the OutputFile.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 4 ----------</maml:title>
        <dev:code>$testResultsFile = "C:\Export\scripts.junit.xml"
$results = Invoke-DatabaseTests "C:\Work\testproject\AdventureWorks2014.Database.Tests\AdventureWorks2014.Database.Tests.sqlproj"
Export-DatabaseTestResults $results -OutputFile $testResultsFile -Force</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to overwrite an existing test results file using the Force parameter.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Invoke-DatabaseTests -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Invoke-DatabaseTests</command:name>
      <command:verb>Invoke</command:verb>
      <command:noun>DatabaseTests</command:noun>
      <maml:description>
        <maml:para>Runs the tSQLt tests contained in a database project.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>The Invoke-DatabaseTests cmdlet executes the tSQLt tests contained in a database project. It creates a TestResults object that represents the results of the tests.</maml:para>
      <maml:para>If you use a path to a database project as the input, by default the cmdlet will create a temporary database on LocalDB to run the tests on. Alternatively, you can use the TemporaryDatabaseServer parameter to specify a SQL Server instance to create the temporary database on. This is useful if your database uses features that aren't supported by LocalDB, such as Full-Text Search. If you don't want to use LocalDB and don't have permission to create a database on the SQL Server instance, you can use the TemporaryDatabase parameter to specify an existing database.</maml:para>
      <maml:para>If you use a database connection as the input, the cmdlet will run the tests directly on the specified database.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: TemporaryDatabaseServer -->
      <command:syntaxItem>
        <maml:name>Invoke-DatabaseTests</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The schema to run the tSQLt tests on.</maml:para>
            <maml:para>This can be a scripts folder, a NuGet package or a database connection. This can be:</maml:para>
            <maml:para>- a Database Connection object created by the New-DatabaseConnection cmdlet</maml:para>
            <maml:para>- a database connection string</maml:para>
            <maml:para>- a path for a NuGet package or .zip file. This must contain a scripts folder located at db\state</maml:para>
            <maml:para>- a build artifact object produced by the New-DatabaseBuildArtifact cmdlet</maml:para>
            <maml:para>- a path for a scripts folder, created by SQL Compare or from your SQL Source Control database repository</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: FilterPath -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>FilterPath</maml:name>
          <maml:description>
            <maml:para>The path to a .scpf filter file.</maml:para>
            <maml:para>Overrides any Filter.scpf file present in the InputObject schema with an alternative filter file to be used when generating the database to test against.</maml:para>
            <maml:para>This parameter will be ignored if the InputObject is a database connection or if the value specified is either $null or empty.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: IgnoreParserErrors -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>IgnoreParserErrors</maml:name>
          <maml:description>
            <maml:para>If the SQL Compare engine should ignore parser errors when creating the test database. This parameter will be ignored if the InputObject is a database connection.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IncludeTestData -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>IncludeTestData</maml:name>
          <maml:description>
            <maml:para>Use this parameter to add random data to the test database.</maml:para>
            <maml:para>You can have more control over the data being added, by using the SQLDataGeneratorProject parameter instead.</maml:para>
            <maml:para>This parameter will be ignored if the InputObject is a database connection.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: QueryBatchTimeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>QueryBatchTimeout</maml:name>
          <maml:description>
            <maml:para>The execution timeout, in seconds, for each batch of queries when creating the test database. The default value is 30 seconds for queries and 900 seconds for the test run. A value of zero indicates that no execution timeout will be enforced.</maml:para>
            <maml:para>This parameter will be ignored if the InputObject is a database connection.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>30</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: RunOnly -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>RunOnly</maml:name>
          <maml:description>
            <maml:para>Use this parameter to run a specific test or a specific test suite. If you don't use this parameter, every test will be run.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SQLCompareOptions -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>SQLCompareOptions</maml:name>
          <maml:description>
            <maml:para>Specifies the SQL Compare options to use when creating the test database. A default set of options are listed below. To include additional options, specify a comma-delimited list of the option names (eg 'IgnoreComments, ObjectExistenceChecks'). To turn off a default option, precede the option name with a minus sign (eg '-ForceColumnOrder').</maml:para>
            <maml:para>This parameter will be ignored if the InputObject is a database connection or if the value specified is either $null or empty.</maml:para>
            <maml:para>By default, the following Compare options are used:</maml:para>
            <maml:para>- ConsiderNextFilegroupInPartitionSchemes</maml:para>
            <maml:para>- DecryptPost2KEncryptedObjects</maml:para>
            <maml:para>- DoNotOutputCommentHeader</maml:para>
            <maml:para>- ForceColumnOrder</maml:para>
            <maml:para>- IgnoreCertificatesAndCryptoKeys</maml:para>
            <maml:para>- IgnoreDatabaseAndServerName</maml:para>
            <maml:para>- IgnoreUsersPermissionsAndRoleMemberships</maml:para>
            <maml:para>- IgnoreUserProperties</maml:para>
            <maml:para>- IgnoreWhiteSpace</maml:para>
            <maml:para>- IgnoreWithElementOrder</maml:para>
            <maml:para>- IncludeDependencies</maml:para>
            <maml:para>- ThrowOnFileParseFailed</maml:para>
            <maml:para>- UseCompatibilityLevel</maml:para>
            <maml:para>See http://www.red-gate.com/sca/ps/help/compareoptions for a complete list of supported SQL Compare options.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SQLDataGeneratorProject -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>SQLDataGeneratorProject</maml:name>
          <maml:description>
            <maml:para>Use this parameter to specify a SQL Data Generator project file (.sqlgen) that defines the data to be added to the test database.</maml:para>
            <maml:para>To add random data to the test database, use the IncludeTestData parameter instead.</maml:para>
            <maml:para>This parameter will be ignored if the InputObject is a database connection.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: TemporaryDatabaseServer -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>TemporaryDatabaseServer</maml:name>
          <maml:description>
            <maml:para>The connection string for the temporary database server used for testing. For example, 'Data Source=TempServer01'.</maml:para>
            <maml:para>This parameter will be ignored if the InputObject is a database connection.</maml:para>
            <maml:para>By default, LocalDB is used for the temporary database. However there may be some features in your database that aren't supported by LocalDB (for example, Full-Text Search). In this case, or if LocalDB is not present, use this parameter to specify an alternative SQL Server instance for the temporary database.</maml:para>
            <maml:para>Using this option, SQL Change Automation will create a temporary, randomly-named database on the specified SQL Server instance.</maml:para>
            <maml:para>You can't use this parameter in addition to the TemporaryDatabase parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">DatabaseServerConnection</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Compare.SchemaSources.DatabaseServerConnection</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
      <!-- Parameter set: TemporaryDatabase -->
      <command:syntaxItem>
        <maml:name>Invoke-DatabaseTests</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The schema to run the tSQLt tests on.</maml:para>
            <maml:para>This can be a scripts folder, a NuGet package or a database connection. This can be:</maml:para>
            <maml:para>- a Database Connection object created by the New-DatabaseConnection cmdlet</maml:para>
            <maml:para>- a database connection string</maml:para>
            <maml:para>- a path for a NuGet package or .zip file. This must contain a scripts folder located at db\state</maml:para>
            <maml:para>- a build artifact object produced by the New-DatabaseBuildArtifact cmdlet</maml:para>
            <maml:para>- a path for a scripts folder, created by SQL Compare or from your SQL Source Control database repository</maml:para>
          </maml:description>
          <command:parameterValue required="true">object</command:parameterValue>
          <dev:type>
            <maml:name>System.Object</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: FilterPath -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>FilterPath</maml:name>
          <maml:description>
            <maml:para>The path to a .scpf filter file.</maml:para>
            <maml:para>Overrides any Filter.scpf file present in the InputObject schema with an alternative filter file to be used when generating the database to test against.</maml:para>
            <maml:para>This parameter will be ignored if the InputObject is a database connection or if the value specified is either $null or empty.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: IgnoreParserErrors -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>IgnoreParserErrors</maml:name>
          <maml:description>
            <maml:para>If the SQL Compare engine should ignore parser errors when creating the test database. This parameter will be ignored if the InputObject is a database connection.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: IncludeTestData -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>IncludeTestData</maml:name>
          <maml:description>
            <maml:para>Use this parameter to add random data to the test database.</maml:para>
            <maml:para>You can have more control over the data being added, by using the SQLDataGeneratorProject parameter instead.</maml:para>
            <maml:para>This parameter will be ignored if the InputObject is a database connection.</maml:para>
          </maml:description>
          <command:parameterValue required="true">SwitchParameter</command:parameterValue>
          <dev:type>
            <maml:name>System.Management.Automation.SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: QueryBatchTimeout -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>QueryBatchTimeout</maml:name>
          <maml:description>
            <maml:para>The execution timeout, in seconds, for each batch of queries when creating the test database. The default value is 30 seconds for queries and 900 seconds for the test run. A value of zero indicates that no execution timeout will be enforced.</maml:para>
            <maml:para>This parameter will be ignored if the InputObject is a database connection.</maml:para>
          </maml:description>
          <command:parameterValue required="true">int</command:parameterValue>
          <dev:type>
            <maml:name>System.Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>30</dev:defaultValue>
        </command:parameter>
        <!-- Parameter: RunOnly -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>RunOnly</maml:name>
          <maml:description>
            <maml:para>Use this parameter to run a specific test or a specific test suite. If you don't use this parameter, every test will be run.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SQLCompareOptions -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>SQLCompareOptions</maml:name>
          <maml:description>
            <maml:para>Specifies the SQL Compare options to use when creating the test database. A default set of options are listed below. To include additional options, specify a comma-delimited list of the option names (eg 'IgnoreComments, ObjectExistenceChecks'). To turn off a default option, precede the option name with a minus sign (eg '-ForceColumnOrder').</maml:para>
            <maml:para>This parameter will be ignored if the InputObject is a database connection or if the value specified is either $null or empty.</maml:para>
            <maml:para>By default, the following Compare options are used:</maml:para>
            <maml:para>- ConsiderNextFilegroupInPartitionSchemes</maml:para>
            <maml:para>- DecryptPost2KEncryptedObjects</maml:para>
            <maml:para>- DoNotOutputCommentHeader</maml:para>
            <maml:para>- ForceColumnOrder</maml:para>
            <maml:para>- IgnoreCertificatesAndCryptoKeys</maml:para>
            <maml:para>- IgnoreDatabaseAndServerName</maml:para>
            <maml:para>- IgnoreUsersPermissionsAndRoleMemberships</maml:para>
            <maml:para>- IgnoreUserProperties</maml:para>
            <maml:para>- IgnoreWhiteSpace</maml:para>
            <maml:para>- IgnoreWithElementOrder</maml:para>
            <maml:para>- IncludeDependencies</maml:para>
            <maml:para>- ThrowOnFileParseFailed</maml:para>
            <maml:para>- UseCompatibilityLevel</maml:para>
            <maml:para>See http://www.red-gate.com/sca/ps/help/compareoptions for a complete list of supported SQL Compare options.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: SQLDataGeneratorProject -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>SQLDataGeneratorProject</maml:name>
          <maml:description>
            <maml:para>Use this parameter to specify a SQL Data Generator project file (.sqlgen) that defines the data to be added to the test database.</maml:para>
            <maml:para>To add random data to the test database, use the IncludeTestData parameter instead.</maml:para>
            <maml:para>This parameter will be ignored if the InputObject is a database connection.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
        <!-- Parameter: TemporaryDatabase -->
        <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
          <maml:name>TemporaryDatabase</maml:name>
          <maml:description>
            <maml:para>The details of the temporary database used for testing. This can be:</maml:para>
            <maml:para>- a database connection object that contains the connection details for a database. See New-DatabaseConnection for details.</maml:para>
            <maml:para>- a database connection string. For example, 'Data Source=TempServer01;Initial Catalog=TempDatabase01'.</maml:para>
            <maml:para>This parameter will be ignored if the InputObject is a database connection.</maml:para>
            <maml:para>By default, LocalDB is used for the temporary database. If you don't want to use LocalDB and don't have permission to create a database on the SQL Server instance, use this option to specify an existing database to use for the temporary copy of the database.</maml:para>
            <maml:para>You can't use this parameter in addition to the TemporaryDatabaseServer parameter.</maml:para>
          </maml:description>
          <command:parameterValue required="true">DatabaseConnection</command:parameterValue>
          <dev:type>
            <maml:name>RedGate.Versioning.Automation.Compare.SchemaSources.DatabaseConnection</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: InputObject -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>The schema to run the tSQLt tests on.</maml:para>
          <maml:para>This can be a scripts folder, a NuGet package or a database connection. This can be:</maml:para>
          <maml:para>- a Database Connection object created by the New-DatabaseConnection cmdlet</maml:para>
          <maml:para>- a database connection string</maml:para>
          <maml:para>- a path for a NuGet package or .zip file. This must contain a scripts folder located at db\state</maml:para>
          <maml:para>- a build artifact object produced by the New-DatabaseBuildArtifact cmdlet</maml:para>
          <maml:para>- a path for a scripts folder, created by SQL Compare or from your SQL Source Control database repository</maml:para>
        </maml:description>
        <command:parameterValue required="true">object</command:parameterValue>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: IncludeTestData -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>IncludeTestData</maml:name>
        <maml:description>
          <maml:para>Use this parameter to add random data to the test database.</maml:para>
          <maml:para>You can have more control over the data being added, by using the SQLDataGeneratorProject parameter instead.</maml:para>
          <maml:para>This parameter will be ignored if the InputObject is a database connection.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: SQLDataGeneratorProject -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>SQLDataGeneratorProject</maml:name>
        <maml:description>
          <maml:para>Use this parameter to specify a SQL Data Generator project file (.sqlgen) that defines the data to be added to the test database.</maml:para>
          <maml:para>To add random data to the test database, use the IncludeTestData parameter instead.</maml:para>
          <maml:para>This parameter will be ignored if the InputObject is a database connection.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: RunOnly -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>RunOnly</maml:name>
        <maml:description>
          <maml:para>Use this parameter to run a specific test or a specific test suite. If you don't use this parameter, every test will be run.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: TemporaryDatabaseServer -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>TemporaryDatabaseServer</maml:name>
        <maml:description>
          <maml:para>The connection string for the temporary database server used for testing. For example, 'Data Source=TempServer01'.</maml:para>
          <maml:para>This parameter will be ignored if the InputObject is a database connection.</maml:para>
          <maml:para>By default, LocalDB is used for the temporary database. However there may be some features in your database that aren't supported by LocalDB (for example, Full-Text Search). In this case, or if LocalDB is not present, use this parameter to specify an alternative SQL Server instance for the temporary database.</maml:para>
          <maml:para>Using this option, SQL Change Automation will create a temporary, randomly-named database on the specified SQL Server instance.</maml:para>
          <maml:para>You can't use this parameter in addition to the TemporaryDatabase parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">DatabaseServerConnection</command:parameterValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.SchemaSources.DatabaseServerConnection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: TemporaryDatabase -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>TemporaryDatabase</maml:name>
        <maml:description>
          <maml:para>The details of the temporary database used for testing. This can be:</maml:para>
          <maml:para>- a database connection object that contains the connection details for a database. See New-DatabaseConnection for details.</maml:para>
          <maml:para>- a database connection string. For example, 'Data Source=TempServer01;Initial Catalog=TempDatabase01'.</maml:para>
          <maml:para>This parameter will be ignored if the InputObject is a database connection.</maml:para>
          <maml:para>By default, LocalDB is used for the temporary database. If you don't want to use LocalDB and don't have permission to create a database on the SQL Server instance, use this option to specify an existing database to use for the temporary copy of the database.</maml:para>
          <maml:para>You can't use this parameter in addition to the TemporaryDatabaseServer parameter.</maml:para>
        </maml:description>
        <command:parameterValue required="true">DatabaseConnection</command:parameterValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.SchemaSources.DatabaseConnection</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: SQLCompareOptions -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>SQLCompareOptions</maml:name>
        <maml:description>
          <maml:para>Specifies the SQL Compare options to use when creating the test database. A default set of options are listed below. To include additional options, specify a comma-delimited list of the option names (eg 'IgnoreComments, ObjectExistenceChecks'). To turn off a default option, precede the option name with a minus sign (eg '-ForceColumnOrder').</maml:para>
          <maml:para>This parameter will be ignored if the InputObject is a database connection or if the value specified is either $null or empty.</maml:para>
          <maml:para>By default, the following Compare options are used:</maml:para>
          <maml:para>- ConsiderNextFilegroupInPartitionSchemes</maml:para>
          <maml:para>- DecryptPost2KEncryptedObjects</maml:para>
          <maml:para>- DoNotOutputCommentHeader</maml:para>
          <maml:para>- ForceColumnOrder</maml:para>
          <maml:para>- IgnoreCertificatesAndCryptoKeys</maml:para>
          <maml:para>- IgnoreDatabaseAndServerName</maml:para>
          <maml:para>- IgnoreUsersPermissionsAndRoleMemberships</maml:para>
          <maml:para>- IgnoreUserProperties</maml:para>
          <maml:para>- IgnoreWhiteSpace</maml:para>
          <maml:para>- IgnoreWithElementOrder</maml:para>
          <maml:para>- IncludeDependencies</maml:para>
          <maml:para>- ThrowOnFileParseFailed</maml:para>
          <maml:para>- UseCompatibilityLevel</maml:para>
          <maml:para>See http://www.red-gate.com/sca/ps/help/compareoptions for a complete list of supported SQL Compare options.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: FilterPath -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>FilterPath</maml:name>
        <maml:description>
          <maml:para>The path to a .scpf filter file.</maml:para>
          <maml:para>Overrides any Filter.scpf file present in the InputObject schema with an alternative filter file to be used when generating the database to test against.</maml:para>
          <maml:para>This parameter will be ignored if the InputObject is a database connection or if the value specified is either $null or empty.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
      <!-- Parameter: QueryBatchTimeout -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>QueryBatchTimeout</maml:name>
        <maml:description>
          <maml:para>The execution timeout, in seconds, for each batch of queries when creating the test database. The default value is 30 seconds for queries and 900 seconds for the test run. A value of zero indicates that no execution timeout will be enforced.</maml:para>
          <maml:para>This parameter will be ignored if the InputObject is a database connection.</maml:para>
        </maml:description>
        <command:parameterValue required="true">int</command:parameterValue>
        <dev:type>
          <maml:name>System.Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>30</dev:defaultValue>
      </command:parameter>
      <!-- Parameter: IgnoreParserErrors -->
      <command:parameter required="false" globbing="false" pipelineInput="false" position="named">
        <maml:name>IgnoreParserErrors</maml:name>
        <maml:description>
          <maml:para>If the SQL Compare engine should ignore parser errors when creating the test database. This parameter will be ignored if the InputObject is a database connection.</maml:para>
        </maml:description>
        <command:parameterValue required="true">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>System.Management.Automation.SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.Object</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The schema to run the tSQLt tests on.</maml:para>
          <maml:para>This can be a scripts folder, a NuGet package or a database connection. This can be:</maml:para>
          <maml:para>- a Database Connection object created by the New-DatabaseConnection cmdlet</maml:para>
          <maml:para>- a database connection string</maml:para>
          <maml:para>- a path for a NuGet package or .zip file. This must contain a scripts folder located at db\state</maml:para>
          <maml:para>- a build artifact object produced by the New-DatabaseBuildArtifact cmdlet</maml:para>
          <maml:para>- a path for a scripts folder, created by SQL Compare or from your SQL Source Control database repository</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <!-- OutputType: TestResults -->
      <command:returnValue>
        <dev:type>
          <maml:name>RedGate.Versioning.Automation.Compare.SchemaTesting.TestResults</maml:name>
          <maml:uri />
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>$testResults = Invoke-DatabaseTests "C:\Work\testproject\AdventureWorks2014.Database.Tests\AdventureWorks2014.Database.Tests.sqlproj"</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to use the Invoke-DatabaseTests cmdlet to run tSQLt tests for a SQL Change Automation project.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 2 ----------</maml:title>
        <dev:code>$project = "C:\Work\scripts"
$testResults = Invoke-DatabaseTests $project</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to use the Invoke-DatabaseTests cmdlet to run tSQLt tests for a SQL Source Control project.</maml:para>
          <maml:para>The cmdlet will use LocalDB to run the tests on.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 3 ----------</maml:title>
        <dev:code>$database = New-DatabaseConnection -ServerInstance "test01\sql2014" -Database "Test"
$testResults = Invoke-DatabaseTests $database</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to use the Invoke-DatabaseTests cmdlet to run tSQLt tests already deployed to a database.</maml:para>
          <maml:para>The output will be a TestResults object, which contains the test results.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 4 ----------</maml:title>
        <dev:code>$project = "C:\Work\testproject\AdventureWorks2014.Database.Tests\AdventureWorks2014.Database.Tests.sqlproj"
$testResults = Invoke-DatabaseTests $project -IncludeTestData</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to add random test data before the tests are run.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 5 ----------</maml:title>
        <dev:code>$project = "C:\Work\scripts"
$testResults = Invoke-DatabaseTests $project -SqlDataGeneratorProject 'C:\Work\DataGeneratorProject.sqlgen'</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to add test data defined by a SQL Data Generator project file (.sqlgen).</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 6 ----------</maml:title>
        <dev:code>$scriptsFolder = "C:\Work\scripts"
$testResults = Invoke-DatabaseTests $scriptsFolder -RunOnly "[SQLCop].[test Unnamed Constraints]"</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to run the single test "[SQLCop].[test Unnamed Constraints]".</maml:para>
          <maml:para>To run all tests in a single test suite, use the RunOnly parameter to specify the name of the test suite. For example: "[SQLCop]".</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 7 ----------</maml:title>
        <dev:code>$project = "C:\Work\testproject\AdventureWorks2014.Database.Tests\AdventureWorks2014.Database.Tests.sqlproj"
$testResults = $project | Invoke-DatabaseTests -TemporaryDatabaseServer "Data Source=temp01\sql2014"</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to specify a SQL Server instance for the temporary database, instead of using LocalDB.</maml:para>
          <maml:para>This is useful if you don't want to use LocalDB because your database uses features that aren't supported by LocalDB, such as Full-Text Search.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 8 ----------</maml:title>
        <dev:code>$project = "C:\Work\testproject\AdventureWorks2014.Database.Tests\AdventureWorks2014.Database.Tests.sqlproj"
$temporaryDatabase = New-DatabaseConnection -ServerInstance "temp01\sql2014" -Database "TemporaryDb"
$testResults = $project | Invoke-DatabaseTests -TemporaryDatabase $temporaryDatabase</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to specify an existing SQL Server database to use as the temporary database, instead of using LocalDB.</maml:para>
          <maml:para>This is useful if you don't want to use LocalDB and you don't have permission to create a database on the SQL Server instance.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>---------- EXAMPLE 9 ----------</maml:title>
        <dev:code>$project = "C:\Work\testproject\AdventureWorks2014.Database.Tests\AdventureWorks2014.Database.Tests.sqlproj"
$options = "IgnoreComments, ObjectExistenceChecks, -IgnoreUserProperties"
$testResults = $project | Invoke-DatabaseTests -SQLCompareOptions $options</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to specify SQL Compare options to use when creating the test database.</maml:para>
          <maml:para>In this example, the $options variable is used to specify that the IgnoreComments and ObjectExistenceChecks options should be included in addition to the default set of SQL Compare options used by this cmdlet. The minus sign before IgnoreUserProperties indicates that this default option will be turned off.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Register-SqlChangeAutomation -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Register-SqlChangeAutomation</command:name>
      <command:verb>Register</command:verb>
      <command:noun>SqlChangeAutomation</command:noun>
      <maml:description>
        <maml:para>Activates SQL Change Automation using a valid serial number.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>To find your serial number, check your invoice or go to https://www.red-gate.com/myserialnumbers.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>Register-SqlChangeAutomation</maml:name>
        <!-- Parameter: InputObject -->
        <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
          <maml:name>InputObject</maml:name>
          <maml:description>
            <maml:para>The SQL Change Automation serial number.</maml:para>
          </maml:description>
          <command:parameterValue required="true">string</command:parameterValue>
          <dev:type>
            <maml:name>System.String</maml:name>
            <maml:uri />
          </dev:type>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <!-- Parameter: InputObject -->
      <command:parameter required="true" globbing="false" pipelineInput="true (ByValue)" position="0">
        <maml:name>InputObject</maml:name>
        <maml:description>
          <maml:para>The SQL Change Automation serial number.</maml:para>
        </maml:description>
        <command:parameterValue required="true">string</command:parameterValue>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
      </command:parameter>
    </command:parameters>
    <command:inputTypes>
      <command:inputType>
        <dev:type>
          <maml:name>System.String</maml:name>
          <maml:uri />
        </dev:type>
        <maml:description>
          <maml:para>The SQL Change Automation serial number.</maml:para>
        </maml:description>
      </command:inputType>
    </command:inputTypes>
    <command:returnValues>
      <!-- OutputType: None -->
      <command:returnValue>
        <dev:type>
          <maml:name>None</maml:name>
          <maml:uri />
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>Register-SqlChangeAutomation 048-001-224164-5B49</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to activate SQL Change Automation using a SQL Change Automation serial number.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
  <!-- Cmdlet: Unregister-SqlChangeAutomation -->
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10">
    <command:details>
      <command:name>Unregister-SqlChangeAutomation</command:name>
      <command:verb>Unregister</command:verb>
      <command:noun>SqlChangeAutomation</command:noun>
      <maml:description>
        <maml:para>Deactivates SQL Change Automation</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This unregisters a SQL Change Automation serial number previously registered on this machine.</maml:para>
    </maml:description>
    <command:syntax>
      <!-- Parameter set: __AllParameterSets -->
      <command:syntaxItem>
        <maml:name>Unregister-SqlChangeAutomation</maml:name>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters />
    <command:inputTypes />
    <command:returnValues>
      <!-- OutputType: None -->
      <command:returnValue>
        <dev:type>
          <maml:name>None</maml:name>
          <maml:uri />
        </dev:type>
      </command:returnValue>
    </command:returnValues>
    <command:examples>
      <command:example>
        <maml:title>---------- EXAMPLE 1 ----------</maml:title>
        <dev:code>Unregister-SqlChangeAutomation</dev:code>
        <dev:remarks>
          <maml:para>This example shows how to deactivate SQL Change Automation.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
  </command:command>
</helpItems>