SQL Server __DeployLog: Update

Octopus.Script exported 10/02/2020 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.
Show 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

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

Show JSON
{
  "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/sql-deploylog-update.json",
  "Website": "/step-templates/a9f7644c-3e27-4e46-a591-eee7f3542032",
  "Logo": "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",
  "$Meta": {
    "Type": "ActionTemplate"
  }
}

History »