SQL Server __DeployLog: Update

Octopus.Script exported 2020-10-02 by Alex-Yates belongs to ‘dlm’ category.

To be used with: SQL Server __DeployLog: Read

Requires sqlserver PowerShell module on target machine.

For more information: https://octopus.com/blog/100x-faster-db-deploys

Parameters

When steps based on the template are included in a project’s deployment process, the parameters below can be set.

Database package deployment step (Required)

DLM_PackageStep =

The step that deploys the package containing the database source code to the target machine.

Database update step (Required)

DLM_DeployStep =

The step that updates the target database.

Target SQL Server Instance (Required)

DLM_ServerInstance =

The name of the target SQL Server instance. e.g. SQLSERVER01\myInstance

Target SQL Server Database (Required)

DLM_Database =

The name of the target database.

SQL Auth User (Optional)

DLM_Username =

The SQL Auth user used to authenticate against the target database. (For Windows Auth, leave blank.)

SQL Auth Password (Optional)

DLM_Password =

The SQL Auth password used to authenticate against the target database. (For Windows Auth, leave blank.)

Script body

Steps based on this template will execute the following PowerShell script.

<#
Required variables:
$DLM_PackageStep
$DLM_DeployStep
$DLM_ServerInstance
$DLM_Database

Optional variables (include for SQL Auth, exclude for WinAuth):
$DLM_Username
$DLM_Password
#>

$errorActionPreference = "stop"

# Verifying that sqlserver module is installed
If (-not(Get-InstalledModule sqlserver -ErrorAction silentlycontinue)) {
  Write-Error "This step requires the sqlserver PowerShell module. Please install it and try again."
}
Else {
  Write-Output "PowerShell module sqlserver is already installed."
}

# Declaring variabes
$deployed_by = ([Environment]::UserDomainName + "\" + [Environment]::UserName)
$currentPackageVersion = $OctopusParameters["Octopus.Action[$DLM_PackageStep].Package.PackageVersion"]
$octo_release_number = $OctopusParameters["Octopus.Release.Number"]
$octo_deployment_id = $OctopusParameters["Octopus.Deployment.Id"]
$octo_deployment_created_by = $OctopusParameters["Octopus.Deployment.CreatedBy.Username"]
$deployStatusCode = $OctopusParameters["Octopus.Step[$DLM_DeployStep].Status.Code"]
$deployStatusError = $OctopusParameters["Octopus.Step[$DLM_DeployStep].Status.Error"]
$deployStatusErrorDetail = $OctopusParameters["Octopus.Step[$DLM_DeployStep].Status.ErrorDetail"]
$timestamp = Get-Date
$utcTime = [datetime]::Now.ToUniversalTime().ToString("yyyy-MM-dd HH:mm:ss")

# Escaping single quotes to avoid breaking T-SQL INSERT statements
$deployStatusError = $deployStatusError -replace "'", "''"
$deployStatusErrorDetail = $deployStatusErrorDetail -replace "'", "''"

# Logging input variables
Write-Verbose "DLM_PackageStep step is: $DLM_PackageStep"
Write-Verbose "DLM_DeployStep step is: $DLM_DeployStep"
Write-Verbose "DLM_ServerInstance instance is: $DLM_ServerInstance"
Write-Verbose "DLM_Database is: $DLM_Database"
Write-Verbose "DLM_Username is: $DLM_Username"
Write-Verbose "deployed_by is: $deployed_by"
Write-Verbose "currentPackageVersion is: $currentPackageVersion"
Write-Verbose "octo_release_number is: $octo_release_number"
Write-Verbose "octo_deployment_id is: $octo_deployment_id"
Write-Verbose "octo_deployment_created_by is: $octo_deployment_created_by"
Write-Verbose "deployStatusCode is: $deployStatusCode"
Write-Verbose "deployStatusError is: $deployStatusError"
Write-Verbose "deployStatusErrorDetail is: $deployStatusErrorDetail"
Write-Verbose "utcTime is: $utcTime"

# For invoke-sqlcmd authentication
$auth=@{}
if($DLM_Username){$auth=@{UserName=$DLM_Username;Password=$DLM_Password}}

# Script to check whether __DeployLog exists in target database
$CheckDeployLogExists = @'
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES
           WHERE TABLE_NAME = N'__DeployLog')
    BEGIN
    SELECT 'TRUE'
    END 
ELSE
    BEGIN
    SELECT 'FALSE'
    End
'@

# Script to create the __DeployLog table if it does not already exist
$CreateDeployLogTbl = @'
CREATE TABLE [dbo].[__DeployLog](
	[deploy_id] [int] IDENTITY(1,1) PRIMARY KEY,
	[package_version] [varchar](255) NOT NULL,
 	[octo_release_number] [nvarchar](50) NOT NULL,
   	[octo_deployment_id] [nvarchar](50) NOT NULL,
    [octo_deployment_created_by] [nvarchar](255) NOT NULL,
	[utc_time] [datetime2](7) NOT NULL,
	[deployed_by] [nvarchar](50) NULL,
    [status_code] [nvarchar](50) NULL,
    [status_error] [nvarchar](MAX) NULL,
    [status_error_detail] [nvarchar](MAX) NULL
    )
GO
'@

# Checking if __DeployLog still exists following deployment 
# (it may have been dropped if it wasn't included in source code)
$DeployLogExists = Invoke-Sqlcmd -ServerInstance $DLM_ServerInstance -Database $DLM_Database -Query $CheckDeployLogExists @Auth
$DeployLogExists = $DeployLogExists[0]

# If __DeployLog has been dropped, recreate it
if($DeployLogExists -eq "FALSE") {
    Write-Warning "Table __DeployLog does not exist in $DLM_Database on $DLM_ServerInstance post-deployment. It may have been deleted. You should either add the table to your source code or your filter to avoid data loss."
    Write-Output "Redeploying __DeployLog table"
    Invoke-Sqlcmd -ServerInstance $DLM_ServerInstance -Database $DLM_Database -Query $CreateDeployLogTbl @Auth
}

# Script to update __DeployLog with info about this deployment
$updateDeployLog = @"
INSERT INTO [dbo].[__DeployLog]
           ([package_version]
           ,[octo_release_number]
           ,[octo_deployment_id]
           ,[octo_deployment_created_by]
           ,[utc_time]
           ,[deployed_by]
           ,[status_code]
           ,[status_error]
           ,[status_error_detail])
     VALUES
           ('$currentPackageVersion'
           ,'$octo_release_number'
           ,'$octo_deployment_id'
           ,'$octo_deployment_created_by'
           ,'$utcTime'
           ,'$deployed_by'
           ,'$deployStatusCode'
           ,'$deployStatusError'
           ,'$deployStatusErrorDetail')
GO
"@

Write-Output "Updating __DeployLog in $DLM_Database on $DLM_ServerInstance."
Invoke-Sqlcmd -ServerInstance $DLM_ServerInstance -Database $DLM_Database -Query $updateDeployLog @Auth

Provided under the Apache License version 2.0.

Report an issue

To use this template in Octopus Deploy, copy the JSON below and paste it into the Library → Step templates → Import dialog.

{
  "Id": "a9f7644c-3e27-4e46-a591-eee7f3542032",
  "Name": "SQL Server __DeployLog: Update",
  "Description": "To be used with:\nSQL Server __DeployLog: Read\r\n\r\nRequires sqlserver PowerShell module on target machine.\r\n\r\nFor more information: https://octopus.com/blog/100x-faster-db-deploys",
  "Version": 2,
  "ExportedAt": "2020-10-02T14:46:20.483Z",
  "ActionType": "Octopus.Script",
  "Author": "Alex-Yates",
  "Packages": [],
  "Parameters": [
    {
      "Id": "a2328977-2df7-42bb-9f23-263031f27fe7",
      "Name": "DLM_PackageStep",
      "Label": "Database package deployment step (Required)",
      "HelpText": "The step that deploys the package containing the database source code to the target machine.",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "StepName"
      }
    },
    {
      "Id": "c4668938-09ea-4b42-9be5-61dfcee9eae6",
      "Name": "DLM_DeployStep",
      "Label": "Database update step (Required)",
      "HelpText": "The step that updates the target database.",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "StepName"
      }
    },
    {
      "Id": "871c40e6-9435-4cc5-8f52-a54eaf8c71ad",
      "Name": "DLM_ServerInstance",
      "Label": "Target SQL Server Instance (Required)",
      "HelpText": "The name of the target SQL Server instance.\ne.g. SQLSERVER01\\myInstance",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Id": "553359a5-9ee8-43a8-b6fc-aa7e5f9d9d9e",
      "Name": "DLM_Database",
      "Label": "Target SQL Server Database (Required)",
      "HelpText": "The name of the target database.",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Id": "61f123b1-cb7d-423f-bf3e-da979c3aa539",
      "Name": "DLM_Username",
      "Label": "SQL Auth User (Optional)",
      "HelpText": "The SQL Auth user used to authenticate against the target database. (For Windows Auth, leave blank.)",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Id": "b373aa81-7807-4653-928b-acf39f6a4888",
      "Name": "DLM_Password",
      "Label": "SQL Auth Password (Optional)",
      "HelpText": "The SQL Auth password used to authenticate against the target database. (For Windows Auth, leave blank.)",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "Sensitive"
      }
    }
  ],
  "Properties": {
    "Octopus.Action.Script.ScriptSource": "Inline",
    "Octopus.Action.Script.Syntax": "PowerShell",
    "Octopus.Action.Script.ScriptBody": "<#\nRequired variables:\n$DLM_PackageStep\n$DLM_DeployStep\n$DLM_ServerInstance\n$DLM_Database\n\nOptional variables (include for SQL Auth, exclude for WinAuth):\n$DLM_Username\n$DLM_Password\n#>\n\n$errorActionPreference = \"stop\"\n\n# Verifying that sqlserver module is installed\nIf (-not(Get-InstalledModule sqlserver -ErrorAction silentlycontinue)) {\n  Write-Error \"This step requires the sqlserver PowerShell module. Please install it and try again.\"\n}\nElse {\n  Write-Output \"PowerShell module sqlserver is already installed.\"\n}\n\n# Declaring variabes\n$deployed_by = ([Environment]::UserDomainName + \"\\\" + [Environment]::UserName)\n$currentPackageVersion = $OctopusParameters[\"Octopus.Action[$DLM_PackageStep].Package.PackageVersion\"]\n$octo_release_number = $OctopusParameters[\"Octopus.Release.Number\"]\n$octo_deployment_id = $OctopusParameters[\"Octopus.Deployment.Id\"]\n$octo_deployment_created_by = $OctopusParameters[\"Octopus.Deployment.CreatedBy.Username\"]\n$deployStatusCode = $OctopusParameters[\"Octopus.Step[$DLM_DeployStep].Status.Code\"]\n$deployStatusError = $OctopusParameters[\"Octopus.Step[$DLM_DeployStep].Status.Error\"]\n$deployStatusErrorDetail = $OctopusParameters[\"Octopus.Step[$DLM_DeployStep].Status.ErrorDetail\"]\n$timestamp = Get-Date\n$utcTime = [datetime]::Now.ToUniversalTime().ToString(\"yyyy-MM-dd HH:mm:ss\")\n\n# Escaping single quotes to avoid breaking T-SQL INSERT statements\n$deployStatusError = $deployStatusError -replace \"'\", \"''\"\n$deployStatusErrorDetail = $deployStatusErrorDetail -replace \"'\", \"''\"\n\n# Logging input variables\nWrite-Verbose \"DLM_PackageStep step is: $DLM_PackageStep\"\nWrite-Verbose \"DLM_DeployStep step is: $DLM_DeployStep\"\nWrite-Verbose \"DLM_ServerInstance instance is: $DLM_ServerInstance\"\nWrite-Verbose \"DLM_Database is: $DLM_Database\"\nWrite-Verbose \"DLM_Username is: $DLM_Username\"\nWrite-Verbose \"deployed_by is: $deployed_by\"\nWrite-Verbose \"currentPackageVersion is: $currentPackageVersion\"\nWrite-Verbose \"octo_release_number is: $octo_release_number\"\nWrite-Verbose \"octo_deployment_id is: $octo_deployment_id\"\nWrite-Verbose \"octo_deployment_created_by is: $octo_deployment_created_by\"\nWrite-Verbose \"deployStatusCode is: $deployStatusCode\"\nWrite-Verbose \"deployStatusError is: $deployStatusError\"\nWrite-Verbose \"deployStatusErrorDetail is: $deployStatusErrorDetail\"\nWrite-Verbose \"utcTime is: $utcTime\"\n\n# For invoke-sqlcmd authentication\n$auth=@{}\nif($DLM_Username){$auth=@{UserName=$DLM_Username;Password=$DLM_Password}}\n\n# Script to check whether __DeployLog exists in target database\n$CheckDeployLogExists = @'\nIF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES\n           WHERE TABLE_NAME = N'__DeployLog')\n    BEGIN\n    SELECT 'TRUE'\n    END \nELSE\n    BEGIN\n    SELECT 'FALSE'\n    End\n'@\n\n# Script to create the __DeployLog table if it does not already exist\n$CreateDeployLogTbl = @'\nCREATE TABLE [dbo].[__DeployLog](\n\t[deploy_id] [int] IDENTITY(1,1) PRIMARY KEY,\n\t[package_version] [varchar](255) NOT NULL,\n \t[octo_release_number] [nvarchar](50) NOT NULL,\n   \t[octo_deployment_id] [nvarchar](50) NOT NULL,\n    [octo_deployment_created_by] [nvarchar](255) NOT NULL,\n\t[utc_time] [datetime2](7) NOT NULL,\n\t[deployed_by] [nvarchar](50) NULL,\n    [status_code] [nvarchar](50) NULL,\n    [status_error] [nvarchar](MAX) NULL,\n    [status_error_detail] [nvarchar](MAX) NULL\n    )\nGO\n'@\n\n# Checking if __DeployLog still exists following deployment \n# (it may have been dropped if it wasn't included in source code)\n$DeployLogExists = Invoke-Sqlcmd -ServerInstance $DLM_ServerInstance -Database $DLM_Database -Query $CheckDeployLogExists @Auth\n$DeployLogExists = $DeployLogExists[0]\n\n# If __DeployLog has been dropped, recreate it\nif($DeployLogExists -eq \"FALSE\") {\n    Write-Warning \"Table __DeployLog does not exist in $DLM_Database on $DLM_ServerInstance post-deployment. It may have been deleted. You should either add the table to your source code or your filter to avoid data loss.\"\n    Write-Output \"Redeploying __DeployLog table\"\n    Invoke-Sqlcmd -ServerInstance $DLM_ServerInstance -Database $DLM_Database -Query $CreateDeployLogTbl @Auth\n}\n\n# Script to update __DeployLog with info about this deployment\n$updateDeployLog = @\"\nINSERT INTO [dbo].[__DeployLog]\n           ([package_version]\n           ,[octo_release_number]\n           ,[octo_deployment_id]\n           ,[octo_deployment_created_by]\n           ,[utc_time]\n           ,[deployed_by]\n           ,[status_code]\n           ,[status_error]\n           ,[status_error_detail])\n     VALUES\n           ('$currentPackageVersion'\n           ,'$octo_release_number'\n           ,'$octo_deployment_id'\n           ,'$octo_deployment_created_by'\n           ,'$utcTime'\n           ,'$deployed_by'\n           ,'$deployStatusCode'\n           ,'$deployStatusError'\n           ,'$deployStatusErrorDetail')\nGO\n\"@\n\nWrite-Output \"Updating __DeployLog in $DLM_Database on $DLM_ServerInstance.\"\nInvoke-Sqlcmd -ServerInstance $DLM_ServerInstance -Database $DLM_Database -Query $updateDeployLog @Auth"
  },
  "Category": "dlm",
  "HistoryUrl": "https://github.com/OctopusDeploy/Library/commits/master/step-templates//opt/buildagent/work/75443764cd38076d/step-templates/sql-deploylog-update.json",
  "Website": "/step-templates/a9f7644c-3e27-4e46-a591-eee7f3542032",
  "Logo": "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",
  "$Meta": {
    "Type": "ActionTemplate"
  }
}

History

Page updated on Friday, October 2, 2020