Presented by : Chirag Dani & Dhaval Shah

Slides:



Advertisements
Similar presentations
Validata Release Coordinator Accelerated application delivery through automated end-to-end release management.
Advertisements

Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
USING CI & CD WITH MICROSOFT SQL SERVER Tim Giorgi Senior Software Developer Northwest Evaluation
Introduction to CVS 7/3/20151UMBC CMSC 341. Outline Introduction to Source Code Management What is CVS? CVS for Project Submission Basic commands Checkout,
Improving Software Quality with Continuous Integration
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.
SubVersioN – the new Central Service at DESY by Marian Gawron.
CONTINUOUS INTEGRATION, DELIVERY & DEPLOYMENT ONE CLICK DELIVERY.
GIT An introduction to GIT Source Control. What is GIT (1 of 2) ▪ “Git is a free and open source distributed version control system designed to handle.
Informix IDS Administration with the New Server Studio 4.0 By Lester Knutsen My experience with the beta of Server Studio and the new Informix database.
® IBM Software Group © 2008 IBM Corporation Setting up Build Forge demo projects for ALM Windows only May – work in progress Stuart Poulin
Database Change Management One solution to an often complex problem Kevin Hurwitz Headspring Systems
Partners’ Webinar 01/31/2013 Karol Jarkovsky Solution Architect Upgrading Kentico.
Kako razvijate PL/SQL pakete? File based PL/SQL development Mitja Golouh SIOUG 2006,
JoePack Ultra Light Packaging for Large Teams. The Problem.
Database projects in visual studio 2010 Anthony Brown
Isolated Database Environments Kevin Howell February 2014.
Build and Deployment Process Understand NCI’s DevOps and continuous integration requirements Understand NCI’s build and distribution requirements.
8/29/10 Maven Repository Management with Nexus Jim McMahon.
Continuous Integration for Databases Steve Jones SQLServerCentral Red Gate Software.
Continuous Deployments using SSDT
1 Punishment Through Continuous Delivery If it hurts, do it more often…
WMarket For Adminstrators Manual Installation. Basic Dependencies To install your own WMarket instance, you are required to install the following software:
7.5 Using Stored-Procedure and Triggers NAME MATRIC NUM GROUP Muhammad Azwan Bin Khairul Anwar CS2305A Muhammad Faiz Bin Badrol Shah CS2305B.
Avoiding the Pitfalls of Database Change Automation Cindy Bean Sr. Software Consultant DBmaestro SQLSaturday #514 – Houston, May 14, 2016.
11 DEPLOYING AN UPDATE MANAGEMENT INFRASTRUCTURE Chapter 6.
Others Talk, We Listen. Managing Database Projects in Visual Studio 2013.
Introduction to SSDT Daniel Maxic Important note: in order to make this presentation I have used some of the content.
Continuous Integration for Databases Steve Jones SQLServerCentral Red Gate Software.
Automated Build and Test
Architecture Review 10/11/2004
Bringing DevOps to the Database
Bringing DevOps to the Database
Stress Free Deployments with Octopus Deploy
SQL 2016 R Services a.k.a. leveraging your local data lake
Visual Studio Database Tools (aka SQL Server Data Tools)
SQL Server deployments
Project Center Use Cases Revision 2
Project Center Use Cases
Continuous Deployments using SSDT
Project Center Use Cases
Project Center Use Cases Revision 3
Concurrent Version Control
Project Center Use Cases Revision 3
Build /21/2018 © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION.
Bringing DevOps to the Database
Continuous Integration For Databases
X in [Integration, Delivery, Deployment]
On transactions, and Atomic Operations
Automated Testing and Integration with CI Tool
Visual Studio Database Tools (aka SQL Server Data Tools)
Continuous Deployments using SSDT
Bringing DevOps to the Database
Using JDeveloper.
Continuous Deployments using SSDT
On transactions, and Atomic Operations
Continuous Deployments using SSDT
Delivering Business Value Faster
JENKINS TIPS Ideas for making your life with Jenkins easier
Your code is not just…your code
Paul S Waters Getting Git.
SSDT and Database Project Basics
Introduction to VSTS Database Professional
Delivering Business Value Faster
DEVOPS & THE FUTURE OF TESTING
Adopting a Compliant Database DevOps Process
Adopting a Compliant Database DevOps Process
Ready Pre-day Azure Monitoring Workshop
Microsoft 365 Business Technical Fundamentals Series
Your code is not just…your code
Presentation transcript:

Presented by : Chirag Dani & Dhaval Shah AliaSQL Presented by : Chirag Dani & Dhaval Shah

What is AliaSQL?

What is AliaSQL? AliaSQL is a command line tool for database deployments. Very popular Automated Database Change Management tool. Freeware. Open Source Code. Code Repository: https://github.com/ClearMeasure/AliaSQL Useful for Continuous Delivery / Deployment. Easy to rebuild database and rollback changes. Easy association with task or work item as Code and Database changes can go in a single check-in. Facility to create database with Test Data.

Why AliaSQL? TWO common mistakes exist when managing the database change management process.  Scenario 1: Developers sharing a development database.  When sharing a development database, changes to this database have to be a blocking issue.  Working on branches becomes an issue because when a database change happens, other developers end up working with a version of the code that has a problem with the new database change.  The external environmental change ends up wasting the time of other team members.

Why AliaSQL? Scenario 2: Developers maintaining local databases that are synced manually later. When each developer maintains isolated databases that are synced manually, the team invariably has to figure out – What are the needed database changes for a given build? Which order of database scripts to follow? When needs to be deployed to production? This process is complex and difficult for QA to test.

Getting started AliaSQL is a command line tool for database deployments It depends on having a database scripts folder with these 4 folders: Create Update Everytime TestData AliaSQL.exe [Action] [Database Server] [DatabaseName] [Scripts path] [Username] [Password]

NuGet packages

AliaSQL.Kickstarter NuGet package Create an empty C# console app. Install AliaSQL.Kickstarter from the package manager console. PM> Install-Package AliaSQL.Kickstarter It is recommended to prefix scripts with numbers to ensure the run order (0001- AddTestTable.sql, 0002-AddSecondTable.sql) You can nest folders in the Create, Update and Everytime folders if you want to organize your scripts in some way.

AliaSQL folders description Create and Update scripts are for tables, constraints, indexes etc which are altered via a series of transitions from one instruction to the next. Everytime scripts are for views/functions/stored procedures which are more similar to your client application code. This allows you to treat them like source code and edit them over time. You create a stored procedure in script #1 and edit that same script over time as the need arises. New or modified scripts in this folder will run every time.

Create command AliaSQL.exe Create .\sqlexpress Demo ./scripts Create database and run all scripts in Create folder. Runs all new scripts and changed scripts in Everytime folder. Logs to usd_AppliedDatabaseScript table.

Update command AliaSQL.exe Update .\sqlexpress Demo ./scripts Run all scripts in Create and Update folders that have not yet been ran. If target database does not already exist it will be created. Runs all scripts in Everytime folder that have not yet been ran or have been modified. Logs to usd_AppliedDatabaseScript table.

Rebuild command AliaSQL.exe Rebuild .\sqlexpress Demo ./scripts Drop and recreate database then run all scripts in Create and Update folders. Runs all scripts in Everytime folder. Logs to usd_AppliedDatabaseScript table.

TestData command AliaSQL.exe TestData .\sqlexpress Demo ./scripts Run all scripts in TestData folder that have not yet been ran - expects target database to already exist. Logs to usd_AppliedDatabaseTestDataScript table.

Baseline command AliaSQL.exe Baseline .\sqlexpress Demo ./scripts Logs (but does not execute) all scripts in Create and Update folders that have not yet been ran - expects database to already exist. This adds the usd_AppliedDatabaseScript table and a record of all scripts to an existing database. This is useful when you have an existing database that you want to bring into change management without running all of your current scripts against it. Logs to usd_AppliedDatabaseScript table.

AliaSQL change management practice Each developer using their own local database to do their development work. Each environment using its own database. i.e. Development, Testing, Staging, Production Each developer maintains his changes locally. When the database changes are ready to commit alongside the application source code, the developer follows these steps: Create a change script that wraps all of the database changes into a single transactional change script. (PowerShell script does that easily) Save the change script into a folder in your source tree call Update. Commit the change script along with the source code that corresponds to the change.

The continuous integration server detects changes to the source control repository than it: It builds the application code. It executes the applications unit tests. Executes the database create task to create a new database with all of the changes that are in source control. Executes the projects integration (data access) tests. Marks the build a success when all the tests pass. Each developer runs the build script locally after receiving new schema changes scripts from the source code repository.

To rebuild WeeeTest database on PRORESDBDEV server using scripts: The change management managers execute the script using the Database deployer tool (like Jenkins) to run the database scripts against the Dev, Test and staging environments when the environments receive their next update of the source code. To rebuild WeeeTest database on PRORESDBDEV server using scripts: C:\Program Files (x86)\Jenkins\jobs\WEEE\jobs\Deploy WEEE to Dev\workspace > build\Database\AliaSQL.exe Rebuild PRORESDBDEV WeeeTest build\Database weeeadmin weeeadmin With Test Data: C:\Program Files (x86)\Jenkins\jobs\WEEE\jobs\Deploy WEEE to Dev\workspace> build\Database\AliaSQL.exe TestData PRORESDBDEV WeeeTest

DEMO

Q & A

THANK YOU !!!