{"id":1483,"date":"2022-11-07T07:00:01","date_gmt":"2022-11-07T15:00:01","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/azure-sql\/?p=1483"},"modified":"2022-11-04T14:10:50","modified_gmt":"2022-11-04T21:10:50","slug":"azure-sql-database-change-management","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/azure-sql\/azure-sql-database-change-management\/","title":{"rendered":"Connecting the Dots of Azure SQL CICD Part 2: Local Development"},"content":{"rendered":"<p>Join us for part two of our Azure SQL database change management (CICD) series. This post covers local development environments with Visual Studio Code.<\/p>\n<h4>Prerequisites Check<\/h4>\n<p>For Database Projects to deploy correctly, we need to have the <strong>.NET Core SDK<\/strong>\u00a0installed.<\/p>\n<p>You can get it <a href=\"https:\/\/dotnet.microsoft.com\/en-us\/download\/dotnet\/3.1\" target=\"_blank\" rel=\"noopener\">here<\/a>\u00a0with a direct link for windows x64 <a href=\"https:\/\/dotnet.microsoft.com\/en-us\/download\/dotnet\/thank-you\/runtime-desktop-3.1.30-windows-x64-installer\" target=\"_blank\" rel=\"noopener\">here<\/a>.<\/p>\n<p>You can also check if you have it installed by typing the following command at a windows terminal prompt:<\/p>\n<pre class=\"prettyprint language-default\"><code class=\"language-default\">dotnet --list-sdks<\/code><\/pre>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/dncheck1.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-1499\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/dncheck1.png\" alt=\"Image dncheck1\" width=\"379\" height=\"62\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/dncheck1.png 379w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/dncheck1-300x49.png 300w\" sizes=\"(max-width: 379px) 100vw, 379px\" \/><\/a><\/p>\n<p>After it&#8217;s installed, restart Visual Studio Code to uptake the new .NET path.<\/p>\n<p>&nbsp;<\/p>\n<h2>Creating a table<\/h2>\n<p>When we left off in <a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/connecting-the-dots-of-azure-sql-cicd-part-1-getting-started\/\" target=\"_blank\" rel=\"noopener\">part 1<\/a>, we had finished setting up our environment for Azure SQL Database change management, and had created a Database SQL project called <strong>Employee App<\/strong>.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/10\/ext10.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-1454\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/10\/ext10.png\" alt=\"Image ext10\" width=\"347\" height=\"404\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/10\/ext10.png 347w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/10\/ext10-258x300.png 258w\" sizes=\"(max-width: 347px) 100vw, 347px\" \/><\/a><\/p>\n<p>Now, <strong>right click<\/strong> on the Employee App node in the Database Projects pane and select <strong>Add Table.<\/strong><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/table1.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-1487\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/table1.png\" alt=\"Image table1\" width=\"385\" height=\"326\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/table1.png 385w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/table1-300x254.png 300w\" sizes=\"(max-width: 385px) 100vw, 385px\" \/><\/a><\/p>\n<p>In the <strong>New Table name<\/strong> box on the top of VS Code, enter <strong>employees<\/strong> as the table name. Then press <strong>Enter<\/strong>.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/table2.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-1489\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/table2.png\" alt=\"Image table2\" width=\"593\" height=\"57\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/table2.png 593w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/table2-300x29.png 300w\" sizes=\"(max-width: 593px) 100vw, 593px\" \/><\/a><\/p>\n<p>We now have a simple create table script with a single column in our Database Project.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/table3.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-1490\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/table3.png\" alt=\"Image table3\" width=\"642\" height=\"151\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/table3.png 642w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/table3-300x71.png 300w\" sizes=\"(max-width: 642px) 100vw, 642px\" \/><\/a><\/p>\n<p>To speed things along, we can use some pre-created code for the employees table. The point was to show you how to add a table via the menu.<\/p>\n<p>Replace the code with the following:<code><code><\/code><\/code><\/p>\n<div>\n<div>\n<pre class=\"prettyprint language-default\"><code class=\"language-default\">CREATE TABLE [dbo].[employees]\r\n(\r\n    [emp_id] INT NOT NULL PRIMARY KEY IDENTITY,\r\n    [first_name] NVARCHAR(100) NOT NULL,\r\n    [last_name] NVARCHAR(200) NOT NULL,\r\n    [address] NVARCHAR(200) NOT NULL\r\n)<\/code><\/pre>\n<pre class=\"prettyprint language-default\"><span style=\"color: #52595e;font-family: Arimo, 'Helvetica Neue', Arial, sans-serif;font-size: 1rem\">Nothing too complicated but it has a bit more to it than a single column.<\/span><\/pre>\n<\/div>\n<div><\/div>\n<h2>Shop Local<\/h2>\n<div>We have our table, now to deploy it into an actual Azure SQL database before we commit our code. Before we start this process, make sure that Docker is up and running.<\/div>\n<div><\/div>\n<div>Here is where it gets even more awesome;<strong> right click<\/strong> the Employee App project and select <strong>Publish<\/strong>.<\/div>\n<div>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy1.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-1495\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy1.png\" alt=\"Image deploy1\" width=\"470\" height=\"216\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy1.png 470w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy1-300x138.png 300w\" sizes=\"(max-width: 470px) 100vw, 470px\" \/><\/a><\/p>\n<\/div>\n<\/div>\n<div><\/div>\n<div>\n<div>The first question of the Publish Wizard is where do you want to publish the project. Select<strong> Publish to a new Azure Database emulator.<\/strong><\/div>\n<div>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy2.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-1501\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy2.png\" alt=\"Image deploy2\" width=\"604\" height=\"133\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy2.png 604w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy2-300x66.png 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<\/div>\n<\/div>\n<div><\/div>\n<div>Next is the Azure SQL server port number. We can leave as the default of 1433 and just press enter.<\/div>\n<div>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy3.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-1502\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy3.png\" alt=\"Image deploy3\" width=\"604\" height=\"86\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy3.png 604w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy3-300x43.png 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<\/div>\n<div><\/div>\n<div>The next two questions are what password do you want to use for the sql admin user (will be created as the sa user). Enter the password you want to use<\/div>\n<div>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy4.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-1503\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy4.png\" alt=\"Image deploy4\" width=\"604\" height=\"85\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy4.png 604w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy4-300x42.png 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<\/div>\n<div><\/div>\n<div>then enter it again to confirm and match<\/div>\n<div>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy5.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-1504\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy5.png\" alt=\"Image deploy5\" width=\"604\" height=\"95\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy5.png 604w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy5-300x47.png 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<\/div>\n<div><\/div>\n<div>The wizard is then going to ask you about what docker image to pull. If you are on windows on an x86\/x64 based CPU, select the <strong>Full<\/strong> <strong>image<\/strong>. If you are on windows on ARM or just happen to be on a Mac, select the Lite image. For all the posts going forward, we are going to use the Full image.<\/div>\n<div>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy6.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-1505\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy6.png\" alt=\"Image deploy6\" width=\"601\" height=\"109\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy6.png 601w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy6-300x54.png 300w\" sizes=\"(max-width: 601px) 100vw, 601px\" \/><\/a><\/p>\n<\/div>\n<div><\/div>\n<div>Now, <strong>accept<\/strong> the license agreement<\/div>\n<div>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy7.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-1506\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy7.png\" alt=\"Image deploy7\" width=\"596\" height=\"109\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy7.png 596w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy7-300x55.png 300w\" sizes=\"(max-width: 596px) 100vw, 596px\" \/><\/a><\/p>\n<\/div>\n<div><\/div>\n<div>And select the<strong> latest Default<\/strong> as the image tag<\/div>\n<div>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy8.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-1507\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy8.png\" alt=\"Image deploy8\" width=\"601\" height=\"221\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy8.png 601w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy8-300x110.png 300w\" sizes=\"(max-width: 601px) 100vw, 601px\" \/><\/a><\/p>\n<\/div>\n<div><\/div>\n<div>Select <strong>Don&#8217;t use profile<\/strong> for the publish profile<\/div>\n<div>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy9.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-1508\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy9.png\" alt=\"Image deploy9\" width=\"596\" height=\"107\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy9.png 596w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy9-300x54.png 300w\" sizes=\"(max-width: 596px) 100vw, 596px\" \/><\/a><\/p>\n<\/div>\n<div><\/div>\n<div>And finally, select <strong>Employee App<\/strong> as the database name we will create<\/div>\n<div>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy10.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-1509\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy10.png\" alt=\"Image deploy10\" width=\"603\" height=\"110\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy10.png 603w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy10-300x55.png 300w\" sizes=\"(max-width: 603px) 100vw, 603px\" \/><\/a><\/p>\n<\/div>\n<div><\/div>\n<div>Visual Studio Code will now pull the Docker image, start it up<\/div>\n<div>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/docker1-1.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-1513\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/docker1-1.png\" alt=\"Image docker1\" width=\"1005\" height=\"135\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/docker1-1.png 1005w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/docker1-1-300x40.png 300w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/docker1-1-768x103.png 768w\" sizes=\"(max-width: 1005px) 100vw, 1005px\" \/><\/a><\/p>\n<\/div>\n<div>and deploy your project to it all within minutes.<\/div>\n<div>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy12.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-1511\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy12.png\" alt=\"Image deploy12\" width=\"454\" height=\"104\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy12.png 454w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/deploy12-300x69.png 300w\" sizes=\"(max-width: 454px) 100vw, 454px\" \/><\/a><\/p>\n<\/div>\n<div>\n<p>You now have a full instance of SQL running in Docker locally that you can use for development. It took just a couple of minutes to deploy and couldn&#8217;t be easier.<\/p>\n<\/div>\n<div><\/div>\n<h2>Make a Connection<\/h2>\n<div>Back in Visual Studio Code, after the deployment, select the SQL Server Connection extension if not already selected so that we can connect to our Azure SQL Database local instance<\/div>\n<div>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect1.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-1514\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect1.png\" alt=\"Image connect1\" width=\"304\" height=\"468\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect1.png 304w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect1-195x300.png 195w\" sizes=\"(max-width: 304px) 100vw, 304px\" \/><\/a><\/p>\n<\/div>\n<div><\/div>\n<div>Click <strong>+ Add Connection<\/strong> and with the connection wizard, enter <strong>localhost<\/strong> for the server name.<\/div>\n<div>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect2.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-1515\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect2.png\" alt=\"Image connect2\" width=\"593\" height=\"54\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect2.png 593w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect2-300x27.png 300w\" sizes=\"(max-width: 593px) 100vw, 593px\" \/><\/a><\/p>\n<\/div>\n<div><\/div>\n<div>Enter <strong>Employee App<\/strong> for the database name<\/div>\n<div>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect2.5.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-1522\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect2.5.png\" alt=\"Image connect2 5\" width=\"603\" height=\"59\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect2.5.png 603w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect2.5-300x29.png 300w\" sizes=\"(max-width: 603px) 100vw, 603px\" \/><\/a><\/p>\n<\/div>\n<div>Select <strong>SQL Login<\/strong> for Authentication Type<\/div>\n<div>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect3.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-1516\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect3.png\" alt=\"Image connect3\" width=\"604\" height=\"108\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect3.png 604w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect3-300x54.png 300w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><\/a><\/p>\n<\/div>\n<div>Enter <strong>sa<\/strong> as the user name<\/div>\n<div><\/div>\n<div>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect4.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-1517\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect4.png\" alt=\"Image connect4\" width=\"599\" height=\"59\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect4.png 599w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect4-300x30.png 300w\" sizes=\"(max-width: 599px) 100vw, 599px\" \/><\/a><\/p>\n<\/div>\n<div><\/div>\n<div>And enter the password you used when you created the Docker image during the publish process<\/div>\n<div>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect5.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-1518\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect5.png\" alt=\"Image connect5\" width=\"601\" height=\"63\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect5.png 601w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect5-300x31.png 300w\" sizes=\"(max-width: 601px) 100vw, 601px\" \/><\/a><\/p>\n<\/div>\n<div><\/div>\n<div>Select Yes to save the password in the connection profile<\/div>\n<div>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect6.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-1519\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect6.png\" alt=\"Image connect6\" width=\"598\" height=\"84\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect6.png 598w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect6-300x42.png 300w\" sizes=\"(max-width: 598px) 100vw, 598px\" \/><\/a><\/p>\n<\/div>\n<div><\/div>\n<div>Last you can provide a connection profile name if you choose or just press Enter<\/div>\n<div>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect7.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-1520\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect7.png\" alt=\"Image connect7\" width=\"599\" height=\"61\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect7.png 599w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect7-300x31.png 300w\" sizes=\"(max-width: 599px) 100vw, 599px\" \/><\/a><\/p>\n<\/div>\n<div><\/div>\n<div>In the <strong>Connection panel<\/strong>, expand the <strong>Tables<\/strong> node and you can see the <strong>employees<\/strong> <strong>table<\/strong> right there, in the database, created for you via the project.<\/div>\n<div>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect8.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-1521\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect8.png\" alt=\"Image connect8\" width=\"254\" height=\"326\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect8.png 254w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/connect8-234x300.png 234w\" sizes=\"(max-width: 254px) 100vw, 254px\" \/><\/a><\/p>\n<\/div>\n<div><\/div>\n<div><\/div>\n<h2>Code Review Time!<\/h2>\n<div>Now that we have our code all set and ready to go back into the repository, we can use git to push the changes back into our GitHub repository. From a terminal windows\/command prompt, enter the AzureCICD directory and add the project files to our GitHub commit<\/div>\n<div>\n<pre class=\"prettyprint language-default\"><code class=\"language-default\">git add .<\/code><\/pre>\n<\/div>\n<div>now we create a commit<\/div>\n<div>\n<pre class=\"prettyprint language-default\"><code class=\"language-default\">git commit -m \"first commit\"<\/code><\/pre>\n<\/div>\n<div><strong>Author identity unknown<\/strong><\/div>\n<div>\n<p>If you run into an Author identity unknown error, just run the following commands replacing you@example.com\u00a0 with the appropriate value you used with GitHub<\/p>\n<pre class=\"prettyprint language-default\"><code class=\"language-default\">git config --global user.email \"you@example.com\"\r\n<\/code><\/pre>\n<\/div>\n<div>next, we push the changes back into the repository<\/div>\n<div>\n<pre class=\"prettyprint language-default\"><code class=\"language-default\">git push<\/code><\/pre>\n<p>Looking at the repository on GitHub, we can see our committed files:<\/p>\n<\/div>\n<div><\/div>\n<div>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/github1.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-1532\" src=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/github1.png\" alt=\"Image github1\" width=\"917\" height=\"383\" srcset=\"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/github1.png 917w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/github1-300x125.png 300w, https:\/\/devblogs.microsoft.com\/azure-sql\/wp-content\/uploads\/sites\/56\/2022\/11\/github1-768x321.png 768w\" sizes=\"(max-width: 917px) 100vw, 917px\" \/><\/a><\/p>\n<\/div>\n<div>\n<h2 id=\"azure-sql-cicd-to-be-continued-in-part-2\">Azure SQL CICD to be Continued in Part 3<\/h2>\n<p>What&#8217;s left? Testing, testing, and more testing. In the next post, we will see how we can use GitHub actions and tSQLt to test our code as we commit it so that we have clean, bug free pull requests!<\/p>\n<\/div>\n<div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Join us for part two of our Azure SQL database change management (CICD) series. This post covers local development environments with Visual Studio Code. Prerequisites Check For Database Projects to deploy correctly, we need to have the .NET Core SDK\u00a0installed. You can get it here\u00a0with a direct link for windows x64 here. You can also [&hellip;]<\/p>\n","protected":false},"author":95874,"featured_media":81,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[532,1,484,92,533],"tags":[534,95,465,469,448,30,449,93,531,94,530],"class_list":["post-1483","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure-data-studio","category-azure-sql","category-containers","category-devops","category-visual-studio-code","tag-azure-data-studio","tag-azure-devops","tag-azuresql","tag-azuresqldb","tag-ci-cd","tag-developers","tag-development","tag-devops","tag-docker","tag-github","tag-visual-studio-code"],"acf":[],"blog_post_summary":"<p>Join us for part two of our Azure SQL database change management (CICD) series. This post covers local development environments with Visual Studio Code. Prerequisites Check For Database Projects to deploy correctly, we need to have the .NET Core SDK\u00a0installed. You can get it here\u00a0with a direct link for windows x64 here. You can also [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/posts\/1483","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/users\/95874"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/comments?post=1483"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/posts\/1483\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/media\/81"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/media?parent=1483"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/categories?post=1483"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/tags?post=1483"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}