Click here to _START_
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)
I can haz Shared Dev DB?
Local Dev DBs = happy devs :D
…Until Integration timez
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
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
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
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
Microsoft 1st party
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
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
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!)
Enter Redgate SQL Source Control
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)
DEMO!
Conflicts
Continuous Integration • Build Scripting • MSBuild • Nant • Powershell • CI build servers • Team City • Cruise Control • Jenkins (formerly Hudson) • Team Foundation Server
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
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
Team City - Version Control settings
Mother of all builds vs Linked Build
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!
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

Sql source control

  • 1.
  • 2.
    about.me • Lead GameDesigner/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.
    I can hazShared Dev DB?
  • 4.
    Local Dev DBs= happy devs :D
  • 5.
  • 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 DBSource 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 Asdevs 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.
  • 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 RedGate 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!)
  • 14.
    Enter Redgate SQLSource Control
  • 15.
    Redgate • Sql SourceControl (~$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.
  • 17.
  • 18.
    Continuous Integration • BuildScripting • MSBuild • Nant • Powershell • CI build servers • Team City • Cruise Control • Jenkins (formerly Hudson) • Team Foundation Server
  • 19.
    Continuous Deployment (Web) WebProjects • MS Web Deploy • Windows Server (Web Management Service - WMSVC) • Windows 7/Vista/XP (MsDepSvc) • Different on IIS 6 vs 7
  • 20.
    Continuous Deployment (Data) TeamCity -> 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
  • 21.
    Team City -Version Control settings
  • 22.
    Mother of allbuilds vs Linked Build
  • 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 ScottAllen: 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