SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
Put databases under source control
Alessandro Alpi

November 9th, 2013

#sqlsat257
#sqlsatverona
Sponsor & Media Partners

November 9th, 2013

#sqlsat257
#sqlsatverona
Organizers

November 9th, 2013

#sqlsat257
#sqlsatverona
About me






MVP
MCTS
MCITP
MCP
MCT






Ita blog: http://blogs.dotnethell.it/suxstellino
Eng blog: http://suxstellino.wordpress.com
Twitter: @suxstellino
Linkedin: it.linkedin.com/in/suxstellino/

November 9th, 2013

#sqlsat257
#sqlsatverona
Agenda









ALM concepts
Source control manager
Database vs Code
Database tools
Project options
Project options management tools
Conclusions
Q&A

November 9th, 2013

#sqlsat257
#sqlsatverona
ALM definition
ALM is the product lifecycle management
(governance, development, and maintenance) of
application software. It encompasses requirements
management, software architecture, computer
programming, software testing, software
maintenance, change management, project
management, and release management.

(source Wikipedia)
November 9th, 2013

#sqlsat257
#sqlsatverona
ALM workflow

November 9th, 2013

#sqlsat257
#sqlsatverona
Why ALM?








Breaking the team barriers (integration)
Release high quality software
Release software in quickly
Customer satisfaction
Improved work organization
Monitoring and tracking the activities
Improved code (clear and easy to read)

November 9th, 2013

#sqlsat257
#sqlsatverona
ALM and database
 The database needs analysis and development
 The databases must be redistributed
 The databases must be synchronized within the
development environment
 The database will have «changes» associated to
«activities»
 The database should be tested
 And, of course, it’s a good thing to deploy 
November 9th, 2013

#sqlsat257
#sqlsatverona
Solutions and tools – development
 Management Studio – not enough
 Visual Studio + Data Tools
 Third party add-ons with SSMS (i.e. Red-Gate
SQL Source Control)
 Third party stand-alone tools

November 9th, 2013

#sqlsat257
#sqlsatverona
Source Control Manager






Management of versions
Changes of the code (and not only those)
Shared entity during development stages,
Deploy and team management
Provides an interface (also graphic)

November 9th, 2013

#sqlsat257
#sqlsatverona
SCM – Why?







Versions of our code
Safe storage of our files
Share development lines within the team
Creation of a central point for deploying
Automate build and test processes
The real needs of every team..

November 9th, 2013

#sqlsat257
#sqlsatverona
SCM – Talking about database






DB can be a file «inside the application»
DB is «located on the server»
DB persists user data
DB is not all and only code
However the changes on DB must be reflected
on the whole team

The Source Control seems «uncomfortable»

November 9th, 2013

#sqlsat257
#sqlsatverona
But without a SCM
 How can we easily manage the fix?
 How can we prevent regressions?
 How quickly can we have multiple development
environments?
 How can we easily create a new dev branch?
 How to create different versions of the DB?
 How can we synchronize the DB with the latest
application changes?

November 9th, 2013

#sqlsat257
#sqlsatverona
DB vs. code – so different?
 The database IS code (programmability,
ddl, grant, etc.)
 The «domain» tables are like many enums
(static data).
 The DB should be changed in more
development branches.

November 9th, 2013

#sqlsat257
#sqlsatverona
DB vs. code – so different?
 The pointers to the linked servers are
configurations (as ‘app.config’)
 The login server are environment
configurations
 The database persist the data. It’s not a
*source control* problem

November 9th, 2013

#sqlsat257
#sqlsatverona
Why put the DB under SCM
 Make versions of our objects (DDL) and
our programmability on database
 Make labels including the database, so we
can return to a previous situation
 Team synchronized to the get of the
version (usually the latest)
 To do versioning also of the static data
November 9th, 2013

#sqlsat257
#sqlsatverona
And more..
 Continuous Integration (tests)
 Branch (more development lines)
 Isolated environments for geographically
located teams
 Atomicity between application and DB
 Saving documentation of the DB

November 9th, 2013

#sqlsat257
#sqlsatverona
SCM – Here are some








TFS (on-premises and «service»)
Git
Mercurial
Subversion
CVS
Perforce
…

November 9th, 2013

#sqlsat257
#sqlsatverona
Management Tool for SCM - DB
 Visual Studio
 SQL Server Data Tools
 Red-Gate Source Control
 SQL Test (for CI)
 ApexSQL Versions
…

November 9th, 2013

#sqlsat257
#sqlsatverona
Possible actions with SCM
 Some actions are:
 Get
 Commit/Checkin
 Undo
 Save (working folder)
 Delete (working folder)
 Edit (working folder)

November 9th, 2013

#sqlsat257
#sqlsatverona
DEMO
Connect to TFService via VS Team Explorer and
Red-Gate Source Control

November 9th, 2013

#sqlsat257
#sqlsatverona
Visual Studio + Data Tools
 Connected database development

November 9th, 2013

#sqlsat257
#sqlsatverona
Visual Studio + Data Tools
 Project based development

November 9th, 2013

#sqlsat257
#sqlsatverona
Red-Gate SQL Source Control
 Integration with SQL Server Management Studio

November 9th, 2013

#sqlsat257
#sqlsatverona
Red-Gate SQL Source Control
 Integration with Visual Studio (SQLConnect)

November 9th, 2013

#sqlsat257
#sqlsatverona
Red-Gate SQL Source Control
 Shared development model

 Dedicated development model (recommended)

November 9th, 2013

#sqlsat257
#sqlsatverona
Possible operations from SCM
With SQL Source Control is also possible to:
 Connect to a working folder
Uses the Team Explorer of Visual Studio

 Connect directly to SCM
All is directly managed from Management Studio

 Save static data under source control
 Automate the refactor with migration process

November 9th, 2013

#sqlsat257
#sqlsatverona
The Team Explorer
Regardless of the tool we use, Team Exploder
allows us to:
 Improve management of the changesets
 Improve association of changesets to tasks
 Improve control on commit and checkin phases
 Centralize management of checkin policy
 Single point for management of the team project

November 9th, 2013

#sqlsat257
#sqlsatverona
DEMO
Manage a database and a team project using
TFService and the tools to manage the SCM

November 9th, 2013

#sqlsat257
#sqlsatverona
Conclusions




Which tools to use?
 Every tool has its own peculiarity
 SQL Source Control allows us to manage data in the easiest way
 Visual Studio ensures the same structure of the database project
 Visual Studio is more simple for the developers (or SQL Connect)
Which parameters should we consider?
 How is our team structured?
 Which are the minimum requirements?
 How much can I afford to spend?
 Can I afford the learning curve if I change IDE?

Last but not least, I should use the Source Control 

November 9th, 2013

#sqlsat257
#sqlsatverona
Resources


http://www.getlatestversion.it/ (ALM italian community)



http://blog.knodev.com/search/label/ALM (Davide Vernole’s blog on ALM)



http://www.codewrecks.com/blog/ (Gian Maria Ricci’s blog on ALM)







http://mattvsts.blogspot.it/ (Matteo Emili’s blog on ALM)
http://www.codinghorror.com/blog/2006/12/is-your-database-under-version-control.html
http://odetocode.com/blogs/scott/archive/2008/01/30/three-rules-for-database-work.aspx
http://odetocode.com/blogs/scott/archive/2008/01/31/versioning-databases-the-baseline.aspx
http://odetocode.com/blogs/scott/archive/2008/02/02/versioning-databases-changescripts.aspx
http://odetocode.com/blogs/scott/archive/2008/02/02/versioning-databases-views-storedprocedures-and-the-like.aspx
http://odetocode.com/blogs/scott/archive/2008/02/03/versioning-databases-branching-andmerging.aspx
http://www.red-gate.com/products/sql-development/sql-source-control/
http://vsaralmassessment.codeplex.com
http://it.wikipedia.org/wiki/Application_lifecycle_management







November 9th, 2013

#sqlsat257
#sqlsatverona
Q&A
 Questions?

November 9th, 2013

#sqlsat257
#sqlsatverona
#sqlsat257
#sqlsatverona

THANKS!

November 9th, 2013

#sqlsat257
#sqlsatverona

Contenu connexe

En vedette

Oraciones simples con solucionario (ppt)
Oraciones simples con solucionario (ppt)Oraciones simples con solucionario (ppt)
Oraciones simples con solucionario (ppt)CastilloAguilera
 
PASS Virtual Chapter - SQL Server Continuous Deployment
PASS Virtual Chapter - SQL Server Continuous DeploymentPASS Virtual Chapter - SQL Server Continuous Deployment
PASS Virtual Chapter - SQL Server Continuous DeploymentAlessandro Alpi
 
Educational managment task_2
Educational managment task_2Educational managment task_2
Educational managment task_2alexandersaa2013
 
[Ita] Sql Saturday 462 Parma - Sql Server 2016 JSON support
[Ita] Sql Saturday 462 Parma - Sql Server 2016 JSON support[Ita] Sql Saturday 462 Parma - Sql Server 2016 JSON support
[Ita] Sql Saturday 462 Parma - Sql Server 2016 JSON supportAlessandro Alpi
 
DotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql ServerDotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql ServerAlessandro Alpi
 
PASS Virtual Chapter - SQL Server Continuous Integration
PASS Virtual Chapter - SQL Server Continuous IntegrationPASS Virtual Chapter - SQL Server Continuous Integration
PASS Virtual Chapter - SQL Server Continuous IntegrationAlessandro Alpi
 
2 67-1379416025-9. automation nad virtual.full
2 67-1379416025-9. automation nad virtual.full2 67-1379416025-9. automation nad virtual.full
2 67-1379416025-9. automation nad virtual.fullKier Francisco
 
[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source control
[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source control[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source control
[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source controlAlessandro Alpi
 
PASS Virtual Chapter - Unit Testing su SQL Server
PASS Virtual Chapter - Unit Testing su SQL ServerPASS Virtual Chapter - Unit Testing su SQL Server
PASS Virtual Chapter - Unit Testing su SQL ServerAlessandro Alpi
 
[ITA] SQL Saturday 257 - Put databases under source control
[ITA] SQL Saturday 257 - Put databases under source control[ITA] SQL Saturday 257 - Put databases under source control
[ITA] SQL Saturday 257 - Put databases under source controlAlessandro Alpi
 
Lietuviai praranda laisvę
Lietuviai praranda laisvęLietuviai praranda laisvę
Lietuviai praranda laisvęErika Bražienė
 
Quick intro sul Source Control su SQL Server
Quick intro sul Source Control su SQL ServerQuick intro sul Source Control su SQL Server
Quick intro sul Source Control su SQL ServerAlessandro Alpi
 
[ITA] SQL Saturday 264 - Put databases in ALM backgrounds
[ITA] SQL Saturday 264 - Put databases in ALM backgrounds[ITA] SQL Saturday 264 - Put databases in ALM backgrounds
[ITA] SQL Saturday 264 - Put databases in ALM backgroundsAlessandro Alpi
 

En vedette (17)

Oraciones simples con solucionario (ppt)
Oraciones simples con solucionario (ppt)Oraciones simples con solucionario (ppt)
Oraciones simples con solucionario (ppt)
 
PASS Virtual Chapter - SQL Server Continuous Deployment
PASS Virtual Chapter - SQL Server Continuous DeploymentPASS Virtual Chapter - SQL Server Continuous Deployment
PASS Virtual Chapter - SQL Server Continuous Deployment
 
Educational managment task_2
Educational managment task_2Educational managment task_2
Educational managment task_2
 
[Ita] Sql Saturday 462 Parma - Sql Server 2016 JSON support
[Ita] Sql Saturday 462 Parma - Sql Server 2016 JSON support[Ita] Sql Saturday 462 Parma - Sql Server 2016 JSON support
[Ita] Sql Saturday 462 Parma - Sql Server 2016 JSON support
 
DotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql ServerDotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql Server
 
PASS Virtual Chapter - SQL Server Continuous Integration
PASS Virtual Chapter - SQL Server Continuous IntegrationPASS Virtual Chapter - SQL Server Continuous Integration
PASS Virtual Chapter - SQL Server Continuous Integration
 
2 67-1379416025-9. automation nad virtual.full
2 67-1379416025-9. automation nad virtual.full2 67-1379416025-9. automation nad virtual.full
2 67-1379416025-9. automation nad virtual.full
 
[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source control
[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source control[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source control
[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source control
 
PASS Virtual Chapter - Unit Testing su SQL Server
PASS Virtual Chapter - Unit Testing su SQL ServerPASS Virtual Chapter - Unit Testing su SQL Server
PASS Virtual Chapter - Unit Testing su SQL Server
 
[ITA] SQL Saturday 257 - Put databases under source control
[ITA] SQL Saturday 257 - Put databases under source control[ITA] SQL Saturday 257 - Put databases under source control
[ITA] SQL Saturday 257 - Put databases under source control
 
Lietuviai praranda laisvę
Lietuviai praranda laisvęLietuviai praranda laisvę
Lietuviai praranda laisvę
 
Slide sharing
Slide sharingSlide sharing
Slide sharing
 
Acting In The Digital Age Workshop @UMFF
Acting In The Digital Age Workshop @UMFFActing In The Digital Age Workshop @UMFF
Acting In The Digital Age Workshop @UMFF
 
Gordonas sausio
Gordonas sausioGordonas sausio
Gordonas sausio
 
Quick intro sul Source Control su SQL Server
Quick intro sul Source Control su SQL ServerQuick intro sul Source Control su SQL Server
Quick intro sul Source Control su SQL Server
 
[ITA] SQL Saturday 264 - Put databases in ALM backgrounds
[ITA] SQL Saturday 264 - Put databases in ALM backgrounds[ITA] SQL Saturday 264 - Put databases in ALM backgrounds
[ITA] SQL Saturday 264 - Put databases in ALM backgrounds
 
Directing teaching resume 2015
Directing teaching resume 2015Directing teaching resume 2015
Directing teaching resume 2015
 

Plus de Alessandro Alpi

Mvp4 croatia - Being a dba in a devops world
Mvp4 croatia - Being a dba in a devops worldMvp4 croatia - Being a dba in a devops world
Mvp4 croatia - Being a dba in a devops worldAlessandro Alpi
 
Digital warriors 2020 - Smart?
Digital warriors 2020 - Smart?Digital warriors 2020 - Smart?
Digital warriors 2020 - Smart?Alessandro Alpi
 
Sql Wars - SQL the attack of the Clones and the rebellion of the Containers
Sql Wars - SQL the attack of the Clones and the rebellion of the Containers Sql Wars - SQL the attack of the Clones and the rebellion of the Containers
Sql Wars - SQL the attack of the Clones and the rebellion of the Containers Alessandro Alpi
 
Sql Wars - SQL Clone vs Docker Containers
Sql Wars - SQL Clone vs Docker Containers Sql Wars - SQL Clone vs Docker Containers
Sql Wars - SQL Clone vs Docker Containers Alessandro Alpi
 
Doaw2020 - Dalla produzione alla QA, provisioning su SQL Server
Doaw2020 - Dalla produzione alla QA, provisioning su SQL ServerDoaw2020 - Dalla produzione alla QA, provisioning su SQL Server
Doaw2020 - Dalla produzione alla QA, provisioning su SQL ServerAlessandro Alpi
 
Wpc2019 - Distruggere DevOps, la storia di un vero team
Wpc2019 - Distruggere DevOps, la storia di un vero teamWpc2019 - Distruggere DevOps, la storia di un vero team
Wpc2019 - Distruggere DevOps, la storia di un vero teamAlessandro Alpi
 
Sql start!2019 Migliorare la produttività per lo sviluppo su SQL Server
Sql start!2019 Migliorare la produttività per lo sviluppo su SQL ServerSql start!2019 Migliorare la produttività per lo sviluppo su SQL Server
Sql start!2019 Migliorare la produttività per lo sviluppo su SQL ServerAlessandro Alpi
 
Configuration e change management con Disciplined Agile Framework
Configuration e change management con Disciplined Agile FrameworkConfiguration e change management con Disciplined Agile Framework
Configuration e change management con Disciplined Agile FrameworkAlessandro Alpi
 
Basta poco per distruggere DevOps
Basta poco per distruggere DevOpsBasta poco per distruggere DevOps
Basta poco per distruggere DevOpsAlessandro Alpi
 
Automatizzare il processo di link dei database con redgate source control
Automatizzare il processo di link dei database con redgate source controlAutomatizzare il processo di link dei database con redgate source control
Automatizzare il processo di link dei database con redgate source controlAlessandro Alpi
 
Sql saturday parma 2017 (#sqlsat675) - Deep space Cosmos DB
Sql saturday parma 2017 (#sqlsat675) - Deep space Cosmos DBSql saturday parma 2017 (#sqlsat675) - Deep space Cosmos DB
Sql saturday parma 2017 (#sqlsat675) - Deep space Cosmos DBAlessandro Alpi
 
Sql Saturday a Pordenone - Sql Server journey, da dev a ops
Sql Saturday a Pordenone - Sql Server journey, da dev a opsSql Saturday a Pordenone - Sql Server journey, da dev a ops
Sql Saturday a Pordenone - Sql Server journey, da dev a opsAlessandro Alpi
 
[Eng] Sql Saturday TorinoExpo - Sql Server 2016 JSON support
[Eng] Sql Saturday TorinoExpo - Sql Server 2016 JSON support[Eng] Sql Saturday TorinoExpo - Sql Server 2016 JSON support
[Eng] Sql Saturday TorinoExpo - Sql Server 2016 JSON supportAlessandro Alpi
 

Plus de Alessandro Alpi (13)

Mvp4 croatia - Being a dba in a devops world
Mvp4 croatia - Being a dba in a devops worldMvp4 croatia - Being a dba in a devops world
Mvp4 croatia - Being a dba in a devops world
 
Digital warriors 2020 - Smart?
Digital warriors 2020 - Smart?Digital warriors 2020 - Smart?
Digital warriors 2020 - Smart?
 
Sql Wars - SQL the attack of the Clones and the rebellion of the Containers
Sql Wars - SQL the attack of the Clones and the rebellion of the Containers Sql Wars - SQL the attack of the Clones and the rebellion of the Containers
Sql Wars - SQL the attack of the Clones and the rebellion of the Containers
 
Sql Wars - SQL Clone vs Docker Containers
Sql Wars - SQL Clone vs Docker Containers Sql Wars - SQL Clone vs Docker Containers
Sql Wars - SQL Clone vs Docker Containers
 
Doaw2020 - Dalla produzione alla QA, provisioning su SQL Server
Doaw2020 - Dalla produzione alla QA, provisioning su SQL ServerDoaw2020 - Dalla produzione alla QA, provisioning su SQL Server
Doaw2020 - Dalla produzione alla QA, provisioning su SQL Server
 
Wpc2019 - Distruggere DevOps, la storia di un vero team
Wpc2019 - Distruggere DevOps, la storia di un vero teamWpc2019 - Distruggere DevOps, la storia di un vero team
Wpc2019 - Distruggere DevOps, la storia di un vero team
 
Sql start!2019 Migliorare la produttività per lo sviluppo su SQL Server
Sql start!2019 Migliorare la produttività per lo sviluppo su SQL ServerSql start!2019 Migliorare la produttività per lo sviluppo su SQL Server
Sql start!2019 Migliorare la produttività per lo sviluppo su SQL Server
 
Configuration e change management con Disciplined Agile Framework
Configuration e change management con Disciplined Agile FrameworkConfiguration e change management con Disciplined Agile Framework
Configuration e change management con Disciplined Agile Framework
 
Basta poco per distruggere DevOps
Basta poco per distruggere DevOpsBasta poco per distruggere DevOps
Basta poco per distruggere DevOps
 
Automatizzare il processo di link dei database con redgate source control
Automatizzare il processo di link dei database con redgate source controlAutomatizzare il processo di link dei database con redgate source control
Automatizzare il processo di link dei database con redgate source control
 
Sql saturday parma 2017 (#sqlsat675) - Deep space Cosmos DB
Sql saturday parma 2017 (#sqlsat675) - Deep space Cosmos DBSql saturday parma 2017 (#sqlsat675) - Deep space Cosmos DB
Sql saturday parma 2017 (#sqlsat675) - Deep space Cosmos DB
 
Sql Saturday a Pordenone - Sql Server journey, da dev a ops
Sql Saturday a Pordenone - Sql Server journey, da dev a opsSql Saturday a Pordenone - Sql Server journey, da dev a ops
Sql Saturday a Pordenone - Sql Server journey, da dev a ops
 
[Eng] Sql Saturday TorinoExpo - Sql Server 2016 JSON support
[Eng] Sql Saturday TorinoExpo - Sql Server 2016 JSON support[Eng] Sql Saturday TorinoExpo - Sql Server 2016 JSON support
[Eng] Sql Saturday TorinoExpo - Sql Server 2016 JSON support
 

Dernier

The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Nikki Chapple
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 

Dernier (20)

The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 

[Eng] SQL Saturday 257 - Verona - Put databases under source control

  • 1. Put databases under source control Alessandro Alpi November 9th, 2013 #sqlsat257 #sqlsatverona
  • 2. Sponsor & Media Partners November 9th, 2013 #sqlsat257 #sqlsatverona
  • 4. About me      MVP MCTS MCITP MCP MCT     Ita blog: http://blogs.dotnethell.it/suxstellino Eng blog: http://suxstellino.wordpress.com Twitter: @suxstellino Linkedin: it.linkedin.com/in/suxstellino/ November 9th, 2013 #sqlsat257 #sqlsatverona
  • 5. Agenda         ALM concepts Source control manager Database vs Code Database tools Project options Project options management tools Conclusions Q&A November 9th, 2013 #sqlsat257 #sqlsatverona
  • 6. ALM definition ALM is the product lifecycle management (governance, development, and maintenance) of application software. It encompasses requirements management, software architecture, computer programming, software testing, software maintenance, change management, project management, and release management. (source Wikipedia) November 9th, 2013 #sqlsat257 #sqlsatverona
  • 7. ALM workflow November 9th, 2013 #sqlsat257 #sqlsatverona
  • 8. Why ALM?        Breaking the team barriers (integration) Release high quality software Release software in quickly Customer satisfaction Improved work organization Monitoring and tracking the activities Improved code (clear and easy to read) November 9th, 2013 #sqlsat257 #sqlsatverona
  • 9. ALM and database  The database needs analysis and development  The databases must be redistributed  The databases must be synchronized within the development environment  The database will have «changes» associated to «activities»  The database should be tested  And, of course, it’s a good thing to deploy  November 9th, 2013 #sqlsat257 #sqlsatverona
  • 10. Solutions and tools – development  Management Studio – not enough  Visual Studio + Data Tools  Third party add-ons with SSMS (i.e. Red-Gate SQL Source Control)  Third party stand-alone tools November 9th, 2013 #sqlsat257 #sqlsatverona
  • 11. Source Control Manager      Management of versions Changes of the code (and not only those) Shared entity during development stages, Deploy and team management Provides an interface (also graphic) November 9th, 2013 #sqlsat257 #sqlsatverona
  • 12. SCM – Why?       Versions of our code Safe storage of our files Share development lines within the team Creation of a central point for deploying Automate build and test processes The real needs of every team.. November 9th, 2013 #sqlsat257 #sqlsatverona
  • 13. SCM – Talking about database      DB can be a file «inside the application» DB is «located on the server» DB persists user data DB is not all and only code However the changes on DB must be reflected on the whole team The Source Control seems «uncomfortable» November 9th, 2013 #sqlsat257 #sqlsatverona
  • 14. But without a SCM  How can we easily manage the fix?  How can we prevent regressions?  How quickly can we have multiple development environments?  How can we easily create a new dev branch?  How to create different versions of the DB?  How can we synchronize the DB with the latest application changes? November 9th, 2013 #sqlsat257 #sqlsatverona
  • 15. DB vs. code – so different?  The database IS code (programmability, ddl, grant, etc.)  The «domain» tables are like many enums (static data).  The DB should be changed in more development branches. November 9th, 2013 #sqlsat257 #sqlsatverona
  • 16. DB vs. code – so different?  The pointers to the linked servers are configurations (as ‘app.config’)  The login server are environment configurations  The database persist the data. It’s not a *source control* problem November 9th, 2013 #sqlsat257 #sqlsatverona
  • 17. Why put the DB under SCM  Make versions of our objects (DDL) and our programmability on database  Make labels including the database, so we can return to a previous situation  Team synchronized to the get of the version (usually the latest)  To do versioning also of the static data November 9th, 2013 #sqlsat257 #sqlsatverona
  • 18. And more..  Continuous Integration (tests)  Branch (more development lines)  Isolated environments for geographically located teams  Atomicity between application and DB  Saving documentation of the DB November 9th, 2013 #sqlsat257 #sqlsatverona
  • 19. SCM – Here are some        TFS (on-premises and «service») Git Mercurial Subversion CVS Perforce … November 9th, 2013 #sqlsat257 #sqlsatverona
  • 20. Management Tool for SCM - DB  Visual Studio  SQL Server Data Tools  Red-Gate Source Control  SQL Test (for CI)  ApexSQL Versions … November 9th, 2013 #sqlsat257 #sqlsatverona
  • 21. Possible actions with SCM  Some actions are:  Get  Commit/Checkin  Undo  Save (working folder)  Delete (working folder)  Edit (working folder) November 9th, 2013 #sqlsat257 #sqlsatverona
  • 22. DEMO Connect to TFService via VS Team Explorer and Red-Gate Source Control November 9th, 2013 #sqlsat257 #sqlsatverona
  • 23. Visual Studio + Data Tools  Connected database development November 9th, 2013 #sqlsat257 #sqlsatverona
  • 24. Visual Studio + Data Tools  Project based development November 9th, 2013 #sqlsat257 #sqlsatverona
  • 25. Red-Gate SQL Source Control  Integration with SQL Server Management Studio November 9th, 2013 #sqlsat257 #sqlsatverona
  • 26. Red-Gate SQL Source Control  Integration with Visual Studio (SQLConnect) November 9th, 2013 #sqlsat257 #sqlsatverona
  • 27. Red-Gate SQL Source Control  Shared development model  Dedicated development model (recommended) November 9th, 2013 #sqlsat257 #sqlsatverona
  • 28. Possible operations from SCM With SQL Source Control is also possible to:  Connect to a working folder Uses the Team Explorer of Visual Studio  Connect directly to SCM All is directly managed from Management Studio  Save static data under source control  Automate the refactor with migration process November 9th, 2013 #sqlsat257 #sqlsatverona
  • 29. The Team Explorer Regardless of the tool we use, Team Exploder allows us to:  Improve management of the changesets  Improve association of changesets to tasks  Improve control on commit and checkin phases  Centralize management of checkin policy  Single point for management of the team project November 9th, 2013 #sqlsat257 #sqlsatverona
  • 30. DEMO Manage a database and a team project using TFService and the tools to manage the SCM November 9th, 2013 #sqlsat257 #sqlsatverona
  • 31. Conclusions   Which tools to use?  Every tool has its own peculiarity  SQL Source Control allows us to manage data in the easiest way  Visual Studio ensures the same structure of the database project  Visual Studio is more simple for the developers (or SQL Connect) Which parameters should we consider?  How is our team structured?  Which are the minimum requirements?  How much can I afford to spend?  Can I afford the learning curve if I change IDE? Last but not least, I should use the Source Control  November 9th, 2013 #sqlsat257 #sqlsatverona
  • 32. Resources  http://www.getlatestversion.it/ (ALM italian community)  http://blog.knodev.com/search/label/ALM (Davide Vernole’s blog on ALM)  http://www.codewrecks.com/blog/ (Gian Maria Ricci’s blog on ALM)      http://mattvsts.blogspot.it/ (Matteo Emili’s blog on ALM) http://www.codinghorror.com/blog/2006/12/is-your-database-under-version-control.html http://odetocode.com/blogs/scott/archive/2008/01/30/three-rules-for-database-work.aspx http://odetocode.com/blogs/scott/archive/2008/01/31/versioning-databases-the-baseline.aspx http://odetocode.com/blogs/scott/archive/2008/02/02/versioning-databases-changescripts.aspx http://odetocode.com/blogs/scott/archive/2008/02/02/versioning-databases-views-storedprocedures-and-the-like.aspx http://odetocode.com/blogs/scott/archive/2008/02/03/versioning-databases-branching-andmerging.aspx http://www.red-gate.com/products/sql-development/sql-source-control/ http://vsaralmassessment.codeplex.com http://it.wikipedia.org/wiki/Application_lifecycle_management      November 9th, 2013 #sqlsat257 #sqlsatverona
  • 33. Q&A  Questions? November 9th, 2013 #sqlsat257 #sqlsatverona