The Cross Innovation Project - Tom Cahill-Jones and Steve Harding
Steve Jones - Team-based Version Control
-
Upload
red-gate-software -
Category
Technology
-
view
301 -
download
0
description
Transcript of Steve Jones - Team-based Version Control
![Page 1: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/1.jpg)
Team-based Database Development with Version Control
Steve JonesEditor in Chief
SQL Server Central, Red Gate Software
#sqlinthecity
![Page 2: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/2.jpg)
Goals
• Understand why version control is important?
• Learn some standards, patterns and best practices
• See flow in a team
![Page 3: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/3.jpg)
![Page 4: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/4.jpg)
Getting started with databases in VCS
DemoDemo
![Page 5: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/5.jpg)
![Page 6: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/6.jpg)
![Page 7: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/7.jpg)
![Page 8: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/8.jpg)
![Page 9: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/9.jpg)
If it’s not in source control, it doesn’t exist.
![Page 10: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/10.jpg)
…your database should always be under source control right next to your application code.
![Page 11: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/11.jpg)
![Page 12: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/12.jpg)
Reducing Risk
![Page 13: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/13.jpg)
The Best Reason
Use source control because neither you nor your team
are perfect
![Page 14: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/14.jpg)
Use Something
![Page 15: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/15.jpg)
Automation is Best
![Page 16: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/16.jpg)
Agenda
• Why Version Control?• Standards, Patterns and Best Practices• Flow in a Team
![Page 17: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/17.jpg)
Database Code
• Object DDL• Assembly code• Security code• Configuration settings• Jobs• Lookup data
![Page 18: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/18.jpg)
Standards
• Three types of standards – Naming– Style– Process
• All important
![Page 19: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/19.jpg)
Naming Standards
• Usually vary by company• ISO 1179• Be consistent• Use tools for enforcement (SQLCop)• Document these lightly and JIT
![Page 20: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/20.jpg)
Style Standards
• Vary by individual• Make code more readable.• Use tools to re-format code to your liking.– SQL Prompt– SSMS Tools Pack– Others
![Page 21: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/21.jpg)
Rules for Database Development• Never use a shared database for
development• Always Have a Single, Authoritative Source
For Your Schema • Always Version Your Database
![Page 22: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/22.jpg)
Best Practices
• Use Version Control for all code• Commit early, commit often (various
references for this one)• Use tools – If it’s hard, people don’t do it• Train people• Build often
![Page 23: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/23.jpg)
The Holy Grail
![Page 24: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/24.jpg)
Developer Efficiency
Demo
![Page 25: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/25.jpg)
Agenda
• Why Version Control?• Standards, Patterns and Best Practices• Flow in a Team
![Page 26: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/26.jpg)
Teamwork
![Page 27: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/27.jpg)
Teamwork
• Communication– Team members need to be aware of
(easily) what others are doing.• Coordination– Teams need to work in a way that
complements each other.
![Page 28: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/28.jpg)
Automation
• Development systems and tools need to work for the team, not against them.
• Many IDEs and tools work well in team environments, if you configure them.
![Page 29: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/29.jpg)
The flow within teams.
Demo
![Page 30: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/30.jpg)
Goals
• Understand why version control is important?
• Learn some standards, patterns and best practices
• See flow in a team
![Page 31: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/31.jpg)
The End
• The next step is Automated Test and Build (next session)
• Questions?• Please fill out your feedback forms• sqlinthecity.red-gate.com• www.voiceofthedba.com.talks• Focus Group on migrations for complex
database changes at 13:30
![Page 32: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/32.jpg)
References
• http://stackoverflow.com/questions/115369/do-you-use-source-control-for-your-database-items
• http://www.codinghorror.com/blog/archives/001050.html• http://www.codinghorror.com/blog/2008/02/get-your-database-under-version-
control.html• http://
www.ssw.com.au/ssw/Standards/Rules/RulesToBetterSQLServerDatabases.aspx• http://
odetocode.com/blogs/scott/archive/2008/01/30/three-rules-for-database-work.aspx
• Check in early, check in often - http://www.codinghorror.com/blog/2008/08/check-in-early-check-in-often.html
![Page 33: Steve Jones - Team-based Version Control](https://reader035.fdocuments.net/reader035/viewer/2022062617/54d6e8124a795979598b4800/html5/thumbnails/33.jpg)
Images
• http://northernalberta.rims.org/NorthernAlbertaChapter/Home/
• http://indianajones.wikia.com/wiki/Holy_Grail• http://www.youtube.com/watch?v=RG0ochx16Dg• http://www.flickr.com/photos/lumaxart/213773724
8/