Update web application in azure with code and database changes from your local machine
In this video we will discuss how to push changes (i.e both code and database changes) and update web application that is already deployed in azure. To migrate local database changes to azure SQL database we use entity framework code first migrations.
Current state of the web application
If you have been following along this course. We have a web application that displays inspirational quotes as shown below.

These quotes come from the following Quotes table.

At the moment, this app is already deployed in azure. We discussed how to do this in our previous videos in this series.
Changes being made on the local machine
Introduce Author column in the Quotes table and populate the values as shown below.

On the web page, along with the quote, the author name also must be displayed as shown below.

Changes on local development machine
Go to Package Manager Console (View - Other Windows - Package Manager Console) in Visual Studo and enable entity framework migrations using the following command.
Enable-Migrations
Add Author property to the Quote class
public class Quote
{
public int Id { get; set; }
public string QuoteText { get; set; }
public string Author { get; set; }
}
Add a new migration using the following command. This creates the required code to add Author column to Quotes table.
Add-Migration Add_Quote_Author
In the Migrations folder, you will see a new file created (file name ends with Add_Quote_Author.cs). Modify this file to include values for the newly added author column as shown below.
namespace Quotes.Migrations
{
using System;
using System.Data.Entity.Migrations;
public partial class Add_Quote_Author : DbMigration
{
public override void Up()
{
AddColumn("dbo.Quotes", "Author", c => c.String());
System.Text.StringBuilder sbQuery = new System.Text.StringBuilder();
sbQuery.Append("Update Quotes Set Author='Albert Einstein' Where Id = 1;");
sbQuery.Append("Update Quotes Set Author='Billie Jean King' Where Id = 2;");
sbQuery.Append("Update Quotes Set Author='Chinese Proverb' Where Id = 3;");
sbQuery.Append("Update Quotes Set Author='Ralph Waldo Emerson' Where Id = 4;");
sbQuery.Append("Update Quotes Set Author='Ralph Waldo Emerson' Where Id = 5;");
Sql(sbQuery.ToString());
}
public override void Down()
{
DropColumn("dbo.Quotes", "Author");
}
}
}
Execute the following command to apply this migration to the database
Update-Database
Modify default.aspx to display Author name as shown below.
<div style="padding-top: 20px">
<asp:Repeater ID="repeaterQuotes" runat="server">
<ItemTemplate>
<div class="alert alert-success" role="alert">
<h3><%#Eval("QuoteText") %></h3>
<p style="text-align: right; font-style: italic">
- <%#Eval("Author") %>
</p>
</div>
</ItemTemplate>
<AlternatingItemTemplate>
<div class="alert alert-danger" role="alert">
<h3><%#Eval("QuoteText") %></h3>
<p style="text-align: right; font-style: italic">
- <%#Eval("Author") %>
</p>
</div>
</AlternatingItemTemplate>
</asp:Repeater>
</div>
Run the app locally and you should see the author name along with the quote itself.
Deploying local changes on the production server in azure
Get to to the Publish window in visual studio (Right click on the project name in solution explorer and select Publish)
On the Publish page, click on the Edit link.

Click on the Settings tab. Select the connection string from the dropdownlist and check the 2 checkboxes. Click Save

Finally click on the Publish button to publish application code.
At this point you should see the author name along with the quote.
© 2020 Pragimtech. All Rights Reserved.


