140 likes | 272 Views
Presentation to Georgia Oracle User group Dan Davis – go-ESI May 13, 2010 Business Development. SCM Concepts SCM Concepts in the Database World ? First Generation of Database “Change” Management The Next Generation of True Database Change Management
E N D
Presentation to Georgia Oracle User group Dan Davis – go-ESI May 13, 2010 Business Development
SCM Concepts SCM Concepts in the Database World? First Generation of Database “Change” Management The Next Generation of True Database Change Management 2nd Generation Database Change Management An example Agenda
Structure of a repository and gained functionality SCM Concepts • File based - Usually text (program code) • Separation of working environment and repository • File Locking • Check out / in • Baseline • Tag / Label • Head / Latest • Rollback • Compare / Merge • Deploy / Build
Traditional SCM concept doesn’t fit the Database world… A database is not a collection of files DDL (Data Definition Language) DML (Data Manipulation Language) DDL extraction No debug environment Content ? DB duplication - constant synchronization Moving changes from Dev to QA, Staging and Production Manual processes were created to deal with real life situations SCM Concepts did not apply to the database world
A new concept is created: Compare & Sync Automated tools compare different environments Reports are generated, and differences are found Automatic code generation Some products can even analyze content and propagate content changes Deployment became more stable and less prone to human mistakes We were happy for a while… So . . . The First Generation of Database “Change” Management Arrives
However: What if test environment has undergone changes? What happened while in development cycle? Anyone privileged can update the database, even if it is not required… How can we match database development with application development? Partial deployments? Team synchronization? Who did what, when and why? So a lot of the traditional SCM goals are still not met First Generation of database change management - a good first step . . .
File Locking Check in / out Baseline(partial) Tag / Label Head / Latest – (this is the DB itself) so actually Rollback Compare / Merge Deploy / Build (partial) First Generation Database “Change” Management Tools
This is not Database Change Management This is Database DeploymentManagement We still need to find a way to Manage Change Correction!!
What is Required? Follow traditional SCM concepts Enforce a well disciplined change process (no out of process updates) Synchronize team work Support entire life cycle (development, testing, going to production) Manage content changes Good, stable repository Save all development Auditing Link / embed to traditional SCM projects Enable deployment based on SCM tasks TheNext Generation Database Change Management
Objectives Object Locking Check in / out Baseline Tag / Label Head / Latest Rollback Compare /Merge Deploy / Build Follow SCM ConceptsNext generation of database change management
Challenges: Creating a new type of repository A problem - central resource vs. replicated resource Enforcing change process Synchronizing development teams Linking to traditional SCM Linking versions Linking change sets Leveraging deployments Next generation database change managementHow is it done?
Policy enforcement Updates only through a disciplined SCM process Concurrent development Preventing collisions and conflicts Standards Check-in and check-out Labels Complete audit trail of all changes Automated Rollback of changes Development Production systems Automated lookup tables data management Deployments between multiple databases Three-way analysis Requirement based deployment 2nd Generation Database Change Management
An example 2nd Generation Database Change Management