Sql source control

1,245 views

Published on

Slides for Twin Cities and Iowa Code Camp Talk - Get you SQL under source control.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,245
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
16
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Sql source control

  1. 1. Click here to _START_
  2. 2. about.me• Lead Game Designer/Dev - QONQR• Independent Consultant – MS Stack• Leadership Team – Twin Cities Code Camp• Co-Leader – Twin Cities .Net User Group• Level 80 Draenei Enhancement Shaman (retired)• (@apickett != Accountant || Lawyer || Fortune Teller || Diamond Level Starcraft II)
  3. 3. I can haz Shared Dev DB?
  4. 4. Local Dev DBs = happy devs :D
  5. 5. …Until Integration timez
  6. 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. 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 Databasehttp://odetocode.com/blogs/scott/archive/2008/01/30/three-rules-for-database-work.aspx
  8. 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. 9. Build vs BuyAs 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
  10. 10. Microsoft 1st party
  11. 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. 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. 13. Off the shelfRed Gate SQL Compare rom $295.DB Ghost from $195, recommended by Mike Hadlow hereSQL 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 $399SQL Source Control 2003 from $199SASSI v2.0 professional from $180 (looks free on their site, but apparently isnt)Evorex Source # shareware or $299+ (conflicting reports!)DB maestro Via http://secretgeek.net/dbcontrol.asp (2006!)
  14. 14. Enter Redgate SQL Source Control
  15. 15. Redgate• Sql Source Control (~$250 per seat) 20% effort AND cost!• Sql Toolbelt (~$1500 per seat) 80% effort • Sql Compare and cost • Sql Data Compare (but worth it!) • Sql Data Generator • Sql Azure Backup (free)
  16. 16. DEMO!
  17. 17. Conflicts
  18. 18. Continuous Integration• Build Scripting • MSBuild • Nant • Powershell• CI build servers • Team City • Cruise Control • Jenkins (formerly Hudson) • Team Foundation Server
  19. 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. 20. Continuous Deployment (Data)Team City -> Auto Deploy DataBuild step 1) Deploy schemaC: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 DataC: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
  21. 21. Team City - Version Control settings
  22. 22. Mother of all builds vs Linked Build
  23. 23. Take awaysJob 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. 24. ResourcesOnline• 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.htmlVendors• Microsoft• Redgate

×