Database Change Management One solution to an often complex problem Kevin Hurwitz Headspring Systems

Slides:



Advertisements
Similar presentations
Development Life Cycle using Visual Studio Team Edition for DB Professionals Richard Fennell Engineering Director SQLBits II Birmingham 1 st March 2008.
Advertisements

Intro to Version Control Have you ever …? Had an application crash and lose ALL of your work Made changes to a file for the worse and wished you could.
Test Automation An Approach to Automated Software Regression Testing Presented by Adnet, Inc Feb 2015.
Roadmap to Continuous Integration Testing and Benefits Gowri Selka, Walgreens Natalie Koltun, Walgreens May 20th, 2014 ©2013 Walgreen Co. All rights reserved.
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Chapter 7 Managing Data Sources. ASP.NET 2.0, Third Edition2.
Agile Testing with Testing Anywhere The road to automation need not be long.
(code name: Data Dude) Josh Robinson Aculix.
© 2006, Cognizant Technology Solutions. All Rights Reserved. The information contained herein is subject to change without notice. Automation – How to.
Continuous Integration for Databases Learn how to automate your build and test Steve Jones Red Gate Software Part II of the Continuous Delivery for Databases.
DB Audit Expert v1.1 for Oracle Copyright © SoftTree Technologies, Inc. This presentation is for DB Audit Expert for Oracle version 1.1 which.
Talend 5.4 Architecture Adam Pemble Talend Professional Services.
By John Boal  Continuous Integration [CI] ◦ Automating the build process ◦ Build the entire system each time any new.
Data-tier Application, Import, Refactoring, Publish, Schema Comparison, Database Unit Testing Borislav Statev Telerik Software Academy academy.telerik.com.
Object Oriented Databases by Adam Stevenson. Object Databases Became commercially popular in mid 1990’s Became commercially popular in mid 1990’s You.
CONTINUOUS INTEGRATION, DELIVERY & DEPLOYMENT ONE CLICK DELIVERY.
Microsoft Visual Basic 2012 CHAPTER ONE Introduction to Visual Basic 2012 Programming.
Database Design for DNN Developers Sebastian Leupold.
Using Microsoft ACCESS to develop small to medium applications on campus.
MaxExchange Install and Configuration. Background Information  Major changes to MaxExchange for SQL versions:  Switch to SQL Server Express database.
What is Sure BDCs? BDC stands for Batch Data Communication and is also known as Batch Input. It is a technique for mass input of data into SAP by simulating.
Creating a Maintainable Software Ecosystem Jeremy D. Miller November 27th, 2007.
1 Copyright ©2004 TAC. 2 T-WorMS Adding Sanity to Your Process Jamie L. Mitchell CTO TAC.
Updating FireRMS Presented by Dan Cook Implementation Team Lead ZOLL.
Design and Programming Chapter 7 Applied Software Project Management, Stellman & Greene See also:
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
Data Driven Designs 99% of enterprise applications operate on database data or at least interface databases. Most common DBMS are Microsoft SQL Server,
Semi-Automatic patch upgrade kit
Master Data Management & Microsoft Master Data Services Presented By: Jeff Prom Data Architect MCTS - Business Intelligence (2008), Admin (2008), Developer.
Database projects in visual studio 2010 Anthony Brown
Isolated Database Environments Kevin Howell February 2014.
Database Projects in Visual Studio Improving Reliability & Productivity.
Learningcomputer.com SQL Server 2008 –Views, Functions and Stored Procedures.
Continuous Integration CruiseControl.Net. Best Practices Use version control; Automate the build; Build should be self tested; Developers must commit.
Visual Studio 2012: A Complete IDE (Debugging & Source Control) Kevin Howell.
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
Level 1-2 Trigger Data Base development Current status and overview Myron Campbell, Alexei Varganov, Stephen Miller University of Michigan August 17, 2000.
SSMS SQL Server Management System. SQL Server Microsoft SQL Server is a Relational Database Management System (RDBMS) Relational Database Management System.
Continuous Integration for Databases Steve Jones SQLServerCentral Red Gate Software.
Continuous Deployments using SSDT
Microsoft Visual Basic 2015 CHAPTER ONE Introduction to Visual Basic 2015 Programming.
7.5 Using Stored-Procedure and Triggers NAME MATRIC NUM GROUP Muhammad Azwan Bin Khairul Anwar CS2305A Muhammad Faiz Bin Badrol Shah CS2305B.
Get testing with tSQLt Practical examples and automation Steve Jones SQLServerCentral Red Gate Software.
9 Copyright © 2004, Oracle. All rights reserved. Getting Started with Oracle Migration Workbench.
Dynamics AX Henrik Hasselblad Business Unit Manager.
Agenda for Today  DATABASE Definition What is DBMS? Types Of Database Most Popular Primary Database  SQL Definition What is SQL Server? Versions Of SQL.
Mastering Master Data Services Presented By: Jeff Prom BI Data Architect Bridgepoint Education MCTS - Business Intelligence, Admin, Developer.
Introduction Aaron Day ● Software Architect ● Open Solutions Interests and Hobbies ● Family ● Software Development ● Woodworking ● Gaming ● Shooting.
Others Talk, We Listen. Managing Database Projects in Visual Studio 2013.
Continuous Integration for Databases Steve Jones SQLServerCentral Red Gate Software.
SQL Database Management
DBMS Programs MS SQL Server & MySQL
Building Enterprise Applications Using Visual Studio®
Source Code Control For CSE 3902 By: Matt Boggus.
SQL Compare & SQL Refactor
Visual Studio Database Tools (aka SQL Server Data Tools)
Glasgow, SQL Server Meetup
Bringing DevOps to the Database
Applied Software Implementation & Testing
SQL Server Data Tools Gert Drapers
Continuous Integration For Databases
Visual Studio Database Tools (aka SQL Server Data Tools)
Your code is not just…your code
Presented by : Chirag Dani & Dhaval Shah
SSDT and Database Project Basics
Make Your PACKAGES Communicate BETTER
Introduction to VSTS Database Professional
Your code is not just…your code
Samir Behara, Senior Developer, EBSCO
Presentation transcript:

Database Change Management One solution to an often complex problem Kevin Hurwitz Headspring Systems

The Problem Most significant business applications rely on at least one relational database for persisting data Most significant business applications rely on at least one relational database for persisting data As new features are developed, database schema changes are often necessary – i.e. new tables, columns, views, and stored procedures As new features are developed, database schema changes are often necessary – i.e. new tables, columns, views, and stored procedures Database schema changes and corresponding code changes must always be deployed together Database schema changes and corresponding code changes must always be deployed together While deploying software to a production environment, code files and libraries may usually be deleted or overwritten – Database files, however, must be intelligently manipulated so as not destroy vital business data While deploying software to a production environment, code files and libraries may usually be deleted or overwritten – Database files, however, must be intelligently manipulated so as not destroy vital business data

Staging Database Environment To ensure an application remains stable throughout the development lifecycle, a data-driven application must be deployed to at least two environments: Production and Staging To ensure an application remains stable throughout the development lifecycle, a data-driven application must be deployed to at least two environments: Production and Staging Database and corresponding code changes are applied and tested in the staging environment before being deployed to production Database and corresponding code changes are applied and tested in the staging environment before being deployed to production ProductionStaging Production Users DevelopersTestersSalespeopleProduct Manager

Many Database Environments While two database environments represent the bare minimum, teams become more productive when certain roles and individuals have their own copy of the database While two database environments represent the bare minimum, teams become more productive when certain roles and individuals have their own copy of the database For example, a developer may make a change to the staging database which breaks the application and derails testers and salespeople For example, a developer may make a change to the staging database which breaks the application and derails testers and salespeople Testers and salespeople may also want to work with their own set of data Testers and salespeople may also want to work with their own set of data Production Users SalespeopleDeveloper #1Developer #2Tester #1Tester #2 Demo

Database Synchronization Many development shops shy away from creating numerous database copies due to the challenge of keeping them all “in synch” Many development shops shy away from creating numerous database copies due to the challenge of keeping them all “in synch” An automated process is needed to make the process of upgrading out- of-date databases simple An automated process is needed to make the process of upgrading out- of-date databases simple Team members who maintain their own database will run the process on demand, while shared databases will be upgraded by an automated build Team members who maintain their own database will run the process on demand, while shared databases will be upgraded by an automated build Production Users SalespeopleDeveloper #1Developer #2Tester #1Tester #2 Demo Shared database upgraded by build/deployment process Individual database upgraded as needed

Incremental Schema Changes All database schemas can be thought of as a compilation of incremental changes made over time to accommodate new functionality All database schemas can be thought of as a compilation of incremental changes made over time to accommodate new functionality To automate the process developers will record all database changes as SQL scripts which they will commit to the source control repository To automate the process developers will record all database changes as SQL scripts which they will commit to the source control repository A program can then be run to execute all of the change scripts against databases which have not yet received the necessary updates A program can then be run to execute all of the change scripts against databases which have not yet received the necessary updates As updates are applied to a database, the changes will be recorded in a table similar to the following: As updates are applied to a database, the changes will be recorded in a table similar to the following: ChangeDate 1_Create_Customer_Table.sql _Add_ _address_column.sql _Add_fax_number_column.sql _Add_transaction_table.sql _Add_transaction_status_column.sql _Add_customer-transaction_view.sql

Database Schema Change Lifecycle Time Developer creates an incremental SQL change script and tests the change locally Once the change is validated by unit tests, the script is checked into source control in a special location The automated build process kicks off, runs the upgrade process which executes the change script against the integration test database, and runs all unit tests to validate the change Once the build has succeeded, the tester can get the latest version of the software from source control and run the upgrade process via a GUI to upgrade her local database Once the build has been validated by QA, automated build processes can be run to deploy the software to staging and production

Creating SQL Server Change Scripts Time Developer snapshots the current state of the database using Red Gate SQL Compare Developer makes all necessary changes to the database using SQL Server Management Studio Developers executes Red Gate SQL Compare to create a transactional change script for the change just made in SQL Server Management Studio The developer saves the Red Gate change script within the database script project under the “Update” folder The developer rebuilds the database from scratch, re- executes the database integration unit test, and commits the new script