{"id":621,"date":"2024-06-14T08:00:00","date_gmt":"2024-06-14T13:00:00","guid":{"rendered":"https:\/\/www.sqltabletalk.com\/?p=621"},"modified":"2024-06-10T16:44:59","modified_gmt":"2024-06-10T21:44:59","slug":"deploy-ssis-projects-using-powershell","status":"publish","type":"post","link":"https:\/\/www.sqltabletalk.com\/?p=621","title":{"rendered":"Deploying SSIS Projects Using PowerShell: A Step-by-Step Tutorial"},"content":{"rendered":"<h2>Introduction<\/h2>\n<p>Deploying SQL Server Integration Services (SSIS) projects manually can be tedious and error-prone. Automating this process using PowerShell not only saves time but also ensures consistency across deployments. In this blog post, we will explore how to write a PowerShell script that automates the deployment of an SSIS project to the SSISDB catalog on a SQL Server. We will walk through the script step by step, explaining each part to help you understand how it works and why it\u2019s done that way.<\/p>\n<h3>Prerequisites<\/h3>\n<p>Before we dive into the script, ensure you have the following:<\/p>\n<ol>\n<li>SQL Server with SSIS installed.<\/li>\n<li>PowerShell with the SQLPS module installed.<\/li>\n<li>The .ispac file of your SSIS project ready for deployment.<\/li>\n<\/ol>\n<h3>Step-by-Step Breakdown of the Script<\/h3>\n<h3>Defining Script Parameters<\/h3>\n<p>We begin our script by defining parameters. Parameters make the script flexible and reusable, allowing you to easily change key values without modifying the script itself. Here, we define parameters for the server name, catalog name, folder name, project name, .ispac file path, and log file path.<\/p>\n<pre><code>param (\n    [string]$serverName = \"localhost\",\n    [string]$catalogName = \"SSISDB\",\n    [string]$folderName = \"myfolder\",\n    [string]$projectName = \"myssisproject\",\n    [string]$ispacFilePath = \"C:\\temp\\myproject.ispac\",\n    [string]$logFile = \"C:\\temp\\deployment_log.txt\"\n)<\/code><\/pre>\n<p>By setting these parameters at the beginning, we ensure that the script can be easily adapted for different environments and projects by simply changing these values.<\/p>\n<h3>Importing Necessary Assemblies<\/h3>\n<p>Next, we import the SQLPS module, which provides the cmdlets needed to interact with SQL Server. We also load the Integration Services assembly. This assembly allows us to work with SSIS objects in our script.<\/p>\n<pre><code>Import-Module SQLPS -DisableNameChecking\n\n# Load Integration Services assembly\ntry \n{\n    [Reflection.Assembly]::LoadWithPartialName(\"Microsoft.SqlServer.Management.IntegrationServices\") | Out-Null\n    Log-Message \"Loaded Integration Services assembly.\"\n} \ncatch \n{\n    Log-Message \"Failed to load Integration Services assembly: $_\"\n    Write-Error \"Failed to load Integration Services assembly: $_\"\n    exit\n}<\/code><\/pre>\n<p>The <code>Import-Module<\/code> command brings the SQLPS module into our script&#8217;s context, while <code>LoadWithPartialName<\/code> loads the necessary .NET assembly. Wrapping the assembly load in a <code>try-catch<\/code> block ensures that any issues are caught and logged, preventing the script from proceeding if the assembly fails to load.<\/p>\n<h3>Creating a Connection to the SQL Server<\/h3>\n<p>With our assemblies loaded, we proceed to establish a connection to the SQL Server. This connection allows us to interact with the server and perform operations like accessing the SSIS catalog and deploying projects.<\/p>\n<pre><code># Create a connection to the server\ntry \n{\n    $serverConnection = New-Object Microsoft.SqlServer.Management.Common.ServerConnection($serverName)\n    $server = New-Object Microsoft.SqlServer.Management.Smo.Server($serverConnection)\n    Log-Message \"Connected to server '$serverName'.\"\n} \ncatch \n{\n    Log-Message \"Failed to connect to the server '$serverName': $_\"\n    Write-Error \"Failed to connect to the server '$serverName': $_\"\n    exit\n}<\/code><\/pre>\n<p>Here, <code>New-Object<\/code> is used to create a <code>ServerConnection<\/code> object with the specified server name. We then create a <code>Server<\/code> object using this connection. Again, we use a <code>try-catch<\/code> block to handle any connection issues, logging them and exiting the script if necessary.<\/p>\n<h3>Connecting to the Integration Services Catalog<\/h3>\n<p>Once connected to the SQL Server, we need to access the SSIS catalog (SSISDB). This catalog is where SSIS projects are stored and managed.<\/p>\n<pre><code># Connect to the Integration Services catalog\ntry \n{\n    $integrationServices = New-Object Microsoft.SqlServer.Management.IntegrationServices.IntegrationServices($server)\n    Log-Message \"Connected to Integration Services on server '$serverName'.\"\n} \ncatch \n{\n    Log-Message \"Error accessing Integration Services: $_\"\n    Write-Error \"Error accessing Integration Services: $_\"\n    exit\n}\n\n# Check if SSISDB exists\ntry \n{\n    $catalog = $integrationServices.Catalogs[$catalogName]\n    if (-not $catalog) \n    {\n        Log-Message \"SSISDB catalog not found on the server '$serverName'.\"\n        Write-Error \"SSISDB catalog not found on the server '$serverName'.\"\n        exit\n    }\n    Log-Message \"SSISDB catalog found.\"\n} \ncatch \n{\n    Log-Message \"Error accessing the catalog: $_\"\n    Write-Error \"Error accessing the catalog: $_\"\n    exit\n}<\/code><\/pre>\n<p>We create an <code>IntegrationServices<\/code> object using the <code>Server<\/code> object from the previous step. We then attempt to access the SSISDB catalog. If the catalog does not exist, the script logs an error and exits.<\/p>\n<h3>Checking or Creating the Folder<\/h3>\n<p>Next, we check if the specified folder exists within the SSISDB catalog. If it doesn&#8217;t, the script creates the folder.<\/p>\n<pre><code># Check if the folder exists, if not create it\ntry \n{\n    $folder = $catalog.Folders[$folderName]\n    if (-not $folder) \n    {\n        Log-Message \"Folder '$folderName' not found. Creating folder...\"\n        $catalog.CreateFolder($folderName, $serverConnection.ConnectionContext.TrueLogin)\n        $folder = $catalog.Folders[$folderName]\n        Log-Message \"Folder '$folderName' created.\"\n    } \n    else \n    {\n        Log-Message \"Folder '$folderName' exists.\"\n    }\n} \ncatch \n{\n    Log-Message \"Error checking\/creating folder: $_\"\n    Write-Error \"Error checking\/creating folder: $_\"\n    exit\n}<\/code><\/pre>\n<p>The script uses the <code>Folders<\/code> property of the catalog to check for the folder&#8217;s existence. If the folder is not found, it uses the <code>CreateFolder<\/code> method to create it, logging each step for transparency.<\/p>\n<h3>Removing an Existing Project<\/h3>\n<p>Before deploying the new project, we need to ensure that any existing project with the same name is removed. This prevents conflicts and ensures a clean deployment.<\/p>\n<pre><code># Check if the project exists, if so remove it\ntry \n{\n    $project = $folder.Projects[$projectName]\n    if ($project) \n    {\n        Log-Message \"Project '$projectName' already exists. Removing existing project...\"\n        $project.Drop()\n        Log-Message \"Project '$projectName' removed.\"\n    }\n} \ncatch \n{\n    Log-Message \"Error checking\/removing project: $_\"\n    Write-Error \"Error checking\/removing project: $_\"\n    exit\n}<\/code><\/pre>\n<p>Here, the script checks if the project exists in the specified folder. If it does, the <code>Drop<\/code> method is used to remove it. This step is crucial to avoid deployment errors due to existing projects.<\/p>\n<h3>Deploying the Project<\/h3>\n<p>Finally, we deploy the new SSIS project to the specified folder in the SSISDB catalog. This is the main purpose of the script.<\/p>\n<pre><code># Deploy the project\ntry \n{\n    Log-Message \"Deploying project '$projectName'...\"\n    $folder.DeployProject($projectName, [System.IO.File]::ReadAllBytes($ispacFilePath))\n    Log-Message \"Project '$projectName' deployed successfully to folder '$folderName' in SSISDB on server '$serverName'.\"\n    Write-Output \"Project '$projectName' deployed successfully to folder '$folderName' in SSISDB on server '$serverName'.\"\n} \ncatch \n{\n    Log-Message \"Failed to deploy project. Error: $_\"\n    Write-Error \"Failed to deploy project. Error: $_\"\n    exit\n}<\/code><\/pre>\n<p>The <code>DeployProject<\/code> method is used to deploy the project from the .ispac file to the SSISDB catalog. The script reads the .ispac file as a byte array and passes it to the <code>DeployProject<\/code> method. Any errors encountered during deployment are logged and reported.<\/p>\n<h3>Conclusion<\/h3>\n<p>This comprehensive PowerShell script automates the deployment of SSIS projects to a SQL Server. By parameterizing key values, adding detailed logging, and implementing robust error handling, we ensure a smooth and consistent deployment process. This script can be easily adapted for different environments and projects, making it a valuable tool for database administrators and developers alike. By following this guide, you can create your own deployment script and streamline your SSIS project deployment process, saving time and reducing the risk of errors.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Deploying SQL Server Integration Services (SSIS) projects manually can be tedious and error-prone. Automating this process using PowerShell not only saves time but also ensures consistency across deployments. In this blog post, we will explore how to write a PowerShell script that automates the deployment of an SSIS project to the SSISDB catalog on a SQL Server. We will walk through the script step by step, explaining each part to help you understand how it works and why it\u2019s done that way.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[55,53,84,145,21],"tags":[131,146,147,148],"class_list":["post-621","post","type-post","status-publish","format-standard","hentry","category-automation","category-powershell","category-sql-developer","category-sql-server-integration-services","category-tutorial","tag-sql-server","tag-sql-server-integration-services","tag-ssis","tag-ssis-deployment"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Deploy SSIS Projects Using PowerShell: A Step-by-Step Tutorial<\/title>\n<meta name=\"description\" content=\"Learn how to automate the deployment of SSIS projects using PowerShell with this step-by-step tutorial. This guide walks you through setting up parameters, importing necessary modules, connecting to SQL Server, and deploying your SSIS projects efficiently. Simplify your deployment process and ensure consistency across environments by following our easy-to-understand instructions.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.sqltabletalk.com\/?p=621\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Deploy SSIS Projects Using PowerShell: A Step-by-Step Tutorial\" \/>\n<meta property=\"og:description\" content=\"Learn how to automate the deployment of SSIS projects using PowerShell with this step-by-step tutorial. This guide walks you through setting up parameters, importing necessary modules, connecting to SQL Server, and deploying your SSIS projects efficiently. Simplify your deployment process and ensure consistency across environments by following our easy-to-understand instructions.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqltabletalk.com\/?p=621\" \/>\n<meta property=\"og:site_name\" content=\"SQL Table Talk\" \/>\n<meta property=\"article:published_time\" content=\"2024-06-14T13:00:00+00:00\" \/>\n<meta name=\"author\" content=\"Stephen Planck\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Stephen Planck\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=621#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=621\"},\"author\":{\"name\":\"Stephen Planck\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0\"},\"headline\":\"Deploying SSIS Projects Using PowerShell: A Step-by-Step Tutorial\",\"datePublished\":\"2024-06-14T13:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=621\"},\"wordCount\":699,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0\"},\"keywords\":[\"SQL Server\",\"SQL Server Integration Services\",\"SSIS\",\"SSIS Deployment\"],\"articleSection\":[\"Automation\",\"PowerShell\",\"SQL Developer\",\"SQL Server Integration Services\",\"Tutorial\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.sqltabletalk.com\/?p=621#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=621\",\"url\":\"https:\/\/www.sqltabletalk.com\/?p=621\",\"name\":\"Deploy SSIS Projects Using PowerShell: A Step-by-Step Tutorial\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#website\"},\"datePublished\":\"2024-06-14T13:00:00+00:00\",\"description\":\"Learn how to automate the deployment of SSIS projects using PowerShell with this step-by-step tutorial. This guide walks you through setting up parameters, importing necessary modules, connecting to SQL Server, and deploying your SSIS projects efficiently. Simplify your deployment process and ensure consistency across environments by following our easy-to-understand instructions.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=621#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqltabletalk.com\/?p=621\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqltabletalk.com\/?p=621#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqltabletalk.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Deploying SSIS Projects Using PowerShell: A Step-by-Step Tutorial\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#website\",\"url\":\"https:\/\/www.sqltabletalk.com\/\",\"name\":\"SQL Table Talk\",\"description\":\"Breaking Down SQL Server, One Post at a Time.\",\"publisher\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sqltabletalk.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0\",\"name\":\"Stephen Planck\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/64181114edc3de3d99072c049bcec024f025c9536dc89fc8ff1bac58976ca81e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/64181114edc3de3d99072c049bcec024f025c9536dc89fc8ff1bac58976ca81e?s=96&d=mm&r=g\",\"caption\":\"Stephen Planck\"},\"logo\":{\"@id\":\"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/dexterwiki.com\",\"https:\/\/www.linkedin.com\/in\/stephen-planck-4611b692?trk=people-guest_people_search-card&challengeId=AQErf8gbBmcVMwAAAYsyIsxO-0UvU8z7cHrBpZoo_n3xt9qEKpRN5B_jd_LmAMu-OfeArkQ7GDjobJ2uRoQQV35EQdh_rR6kxA&submissionId=09de7067-c335-8e17-40b8-8dc32b60ed6c&challengeSource=AgEcUCw35zpPmAAAAYsyI4vAWhJTV7Nt4vZYKc3V1qiDBpCkKgUvtlOBgYXcE84&challegeType=AgE_wZiTT09IAQAAAYsyI4vDmNvbZIYe6XHju5V2bXVvM3IVxnJslgY&memberId=AgESFTkUShzs_gAAAYsyI4vGYk0Gic1uc5kB6cKOABA26Gw&recognizeDevice=AgHdSZyUSI5CEwAAAYsyI4vKd_koF9JgpsCJShT8QfbK1QMiv8SI\",\"https:\/\/www.youtube.com\/linuxmate\"],\"url\":\"https:\/\/www.sqltabletalk.com\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Deploy SSIS Projects Using PowerShell: A Step-by-Step Tutorial","description":"Learn how to automate the deployment of SSIS projects using PowerShell with this step-by-step tutorial. This guide walks you through setting up parameters, importing necessary modules, connecting to SQL Server, and deploying your SSIS projects efficiently. Simplify your deployment process and ensure consistency across environments by following our easy-to-understand instructions.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.sqltabletalk.com\/?p=621","og_locale":"en_US","og_type":"article","og_title":"Deploy SSIS Projects Using PowerShell: A Step-by-Step Tutorial","og_description":"Learn how to automate the deployment of SSIS projects using PowerShell with this step-by-step tutorial. This guide walks you through setting up parameters, importing necessary modules, connecting to SQL Server, and deploying your SSIS projects efficiently. Simplify your deployment process and ensure consistency across environments by following our easy-to-understand instructions.","og_url":"https:\/\/www.sqltabletalk.com\/?p=621","og_site_name":"SQL Table Talk","article_published_time":"2024-06-14T13:00:00+00:00","author":"Stephen Planck","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Stephen Planck","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.sqltabletalk.com\/?p=621#article","isPartOf":{"@id":"https:\/\/www.sqltabletalk.com\/?p=621"},"author":{"name":"Stephen Planck","@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0"},"headline":"Deploying SSIS Projects Using PowerShell: A Step-by-Step Tutorial","datePublished":"2024-06-14T13:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.sqltabletalk.com\/?p=621"},"wordCount":699,"commentCount":0,"publisher":{"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0"},"keywords":["SQL Server","SQL Server Integration Services","SSIS","SSIS Deployment"],"articleSection":["Automation","PowerShell","SQL Developer","SQL Server Integration Services","Tutorial"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.sqltabletalk.com\/?p=621#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.sqltabletalk.com\/?p=621","url":"https:\/\/www.sqltabletalk.com\/?p=621","name":"Deploy SSIS Projects Using PowerShell: A Step-by-Step Tutorial","isPartOf":{"@id":"https:\/\/www.sqltabletalk.com\/#website"},"datePublished":"2024-06-14T13:00:00+00:00","description":"Learn how to automate the deployment of SSIS projects using PowerShell with this step-by-step tutorial. This guide walks you through setting up parameters, importing necessary modules, connecting to SQL Server, and deploying your SSIS projects efficiently. Simplify your deployment process and ensure consistency across environments by following our easy-to-understand instructions.","breadcrumb":{"@id":"https:\/\/www.sqltabletalk.com\/?p=621#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqltabletalk.com\/?p=621"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqltabletalk.com\/?p=621#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqltabletalk.com\/"},{"@type":"ListItem","position":2,"name":"Deploying SSIS Projects Using PowerShell: A Step-by-Step Tutorial"}]},{"@type":"WebSite","@id":"https:\/\/www.sqltabletalk.com\/#website","url":"https:\/\/www.sqltabletalk.com\/","name":"SQL Table Talk","description":"Breaking Down SQL Server, One Post at a Time.","publisher":{"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqltabletalk.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/1947e42a9438bccd91691d8b791888e0","name":"Stephen Planck","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/64181114edc3de3d99072c049bcec024f025c9536dc89fc8ff1bac58976ca81e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/64181114edc3de3d99072c049bcec024f025c9536dc89fc8ff1bac58976ca81e?s=96&d=mm&r=g","caption":"Stephen Planck"},"logo":{"@id":"https:\/\/www.sqltabletalk.com\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/dexterwiki.com","https:\/\/www.linkedin.com\/in\/stephen-planck-4611b692?trk=people-guest_people_search-card&challengeId=AQErf8gbBmcVMwAAAYsyIsxO-0UvU8z7cHrBpZoo_n3xt9qEKpRN5B_jd_LmAMu-OfeArkQ7GDjobJ2uRoQQV35EQdh_rR6kxA&submissionId=09de7067-c335-8e17-40b8-8dc32b60ed6c&challengeSource=AgEcUCw35zpPmAAAAYsyI4vAWhJTV7Nt4vZYKc3V1qiDBpCkKgUvtlOBgYXcE84&challegeType=AgE_wZiTT09IAQAAAYsyI4vDmNvbZIYe6XHju5V2bXVvM3IVxnJslgY&memberId=AgESFTkUShzs_gAAAYsyI4vGYk0Gic1uc5kB6cKOABA26Gw&recognizeDevice=AgHdSZyUSI5CEwAAAYsyI4vKd_koF9JgpsCJShT8QfbK1QMiv8SI","https:\/\/www.youtube.com\/linuxmate"],"url":"https:\/\/www.sqltabletalk.com\/?author=1"}]}},"jetpack_featured_media_url":"","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/621","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=621"}],"version-history":[{"count":1,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/621\/revisions"}],"predecessor-version":[{"id":622,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=\/wp\/v2\/posts\/621\/revisions\/622"}],"wp:attachment":[{"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=621"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=621"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqltabletalk.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=621"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}