6. What we’ll cover
• SQL under Source Control
20% effort
• Check in Schema, Ref Data, Migration Scripts BIG REWARD!
• Revision History
• Merge Conflicts
• Database Continuous Integration & Deploy 80% effort
• Automated Builds MEGA REALLY
• Automated Database Deploy HUGE REWARD!
• from Source Control to target environment
7. K. Scott Allen – Three Rules for DB work
• 1. Never use a shared database server for development work.
• 2. Always Have a Single, Authoritative Source For Your Schema
• 3. Always Version Your Database
http://odetocode.com/blogs/scott/archive/2008/01/30/three-rules-for-
database-work.aspx
8. Benefits of DB Source Control
• Same as putting ur codez in SC!
• Freedom to refactor (safely with rollbacks)
• Rapid iteration & integration
• Check in logs & history
• Schema Compare
• Data Compare
• Automated builds and integration tests (correctness)
• Via Coding Horror: Is Your Database Under Version Control?
http://www.codinghorror.com/blog/2006/12/is-your-database-under-version-
control.html
9. Build vs Buy
As devs we’re wizards capable of magicing up anything.
Friendly adivce: Avoid that temptation (unless it’s your core business)
- Team of 8. ½ a Dev year to maintain and extend custom rolled solution
11. Microsoft 1st party
• VS Database projects
• VS 2010
• Database Project (.dbproj)
• Server Project
• Data-tier Application (DAC)
• http://msdn.microsoft.com/en-us/library/ee240739(SQL.105).aspx
• VS2011 = .sqlproj
• Moving to Sql Server Developer tools (SSDT) code named "Juneau".
• http://msdn.microsoft.com/en-us/magazine/hh394146.aspx
• VS Schema compare
• Requires Visual Studio Premium or Ultimate
• Command Line VSDBCMD.EXE
12. Microsoft 1st party
• Dacpac
• Serializes DB schema to XML (?)
• Versionable, but tricky to do diffs (?)
• Targeted at managing handoff of schema between Dev and Prod
• Think similar to how IT systems hands off VMs
• http://www.slideshare.net/andrewmatthewthompson/sql-aure-and-datatier-
applications-dacpac
• Bacpac
• Extends Dacpac to include Table Data
13. Off the shelf
Red Gate SQL Compare rom $295.
DB Ghost from $195, recommended by Mike Hadlow here
SQL Change Manager $995 per instance.
SQL Effects Clarity standard ed. from $139; community ed. free.
SQLSourceSafe from $129.
sqlXpress Diff contact for price. :-(
Embarcadero Change Manager contact for price. :-(
Apex SQL Diff from $399
SQL Source Control 2003 from $199
SASSI v2.0 professional from $180 (looks free on their site, but apparently isn't)
Evorex Source # shareware or $299+ (conflicting reports!)
DB maestro
Via http://secretgeek.net/dbcontrol.asp (2006!)
18. Continuous Integration
• Build Scripting
• MSBuild
• Nant
• Powershell
• CI build servers
• Team City
• Cruise Control
• Jenkins (formerly Hudson)
• Team Foundation Server
19. Continuous Deployment (Web)
Web Projects
• MS Web Deploy
• Windows Server (Web Management Service - WMSVC)
• Windows 7/Vista/XP (MsDepSvc)
• Different on IIS 6 vs 7
20. Continuous Deployment (Data)
Team City -> Auto Deploy Data
Build step 1) Deploy schema
C:Program Files (x86)Red GateSQL Compare 9SQLCompare.exe
/scr1:%teamcity.build.checkoutDir%/Data /server2:(local) /db2:tccc12_prod /Sync
/Include:identical /Report:Report/SchemaDiffReport.html /ReportType:Interactive
/ScriptFile:Report/SchemaSyncScript.sql /Force /Verbose
-------------------
Build step 2)
Deploy Reference Data
C:Program Files (x86)Red GateSQL Data Compare 9SQLDataCompare.exe
/scr1:%teamcity.build.checkoutDir%/Data /server2:(local) /db2:tccc12_prod /Sync
/Include:table:Country /Include:identical /ScriptFile:Report/DataSyncScript.sql /Force /Verbose
23. Take aways
Job 1: Get your Sql under Source Control!
Job 2: Get Sql into your CI builds!
Job 3: Test your Data continuously!
Job 4: Deploy continually!
Job 5: Profit!
24. Resources
Online
• K Scott Allen: Three Rules for Database Work:
• http://odetocode.com/blogs/scott/archive/2008/01/30/three-rules-for-database-
work.aspx
• Coding Horror: Is Your Database Under Version Control?
• http://www.codinghorror.com/blog/2006/12/is-your-database-under-version-
control.html
• Troy Hunt – Rocking your SQL Source Control world with Red Gate
• http://www.troyhunt.com/2010/07/rocking-your-sql-source-control-world.html
• http://www.troyhunt.com/2011/02/automated-database-releases-with.html
Vendors
• Microsoft
• Redgate